java多线程示例_java多线程示例

/*

进程:一个正在运行的程序。每一个进程都有一个执行顺序,该顺序就是执行路径,或者叫执行单元

线程:就是进程中的一个执行单元。线程控制着进程。一个进程中至少有一个线程。

多线程示例。

创建多线程有两种方法。

一种继承Thread类,并且覆盖Thread中的run方法,并且调用其start方法。

startt方法的作用是开启线程,并且调用run方法。

复写run方法的目的是:将自定义的代码存储在run方法中,让线程运行。

*/

class Demo extends Thread{

public void run(){

for(int x =0; x <40;x++){

System.out.println("Demo Run...."+x);

}

}

}

class ThreadDemo{

public static void main(String[]args){

Demo d = new Demo();

//等普通调用,因为run方法仅仅是将需要多线程执行的代码进行封装。

d.run();

//开启线程,并执行该线程的run方法。如果是d.run();则仅仅是允许run方法,并没有开启多线程。

d.start();

for(int i = 0;i<40;i++){

System.out.println("helloWolrd----"+i);

}    //主线程,与start开启的线程并行执行。

}

}

/*

创建线程的第二种方法,实现runnable接口

步骤:

1.实现Runnable接口

2.覆盖Runnabel中的run方法,将需要线程运行的代码存放在run方法中

3.通过Thread类建立线程对象

4.通过Runnable接口的子类对象作为参数,传递给Thread类的构造函数

为什么要将Runnable接口的子类对象作为参数传递给Thread类。

因为自定义的Run方法所属对象是Runnable接口的子类对象,所以要让线程去指定所属对象的Run方法,

就必须明确run方法所属对象。

5.调用Thread类的start方法,开启线程,并调用Runnable接口的子类run方法

实现方式和继承方式区别。

实现方式的好处:避免了继承的局限性。

在定义线程时,一般使用实现方式

*/

class Ticket implements Runnable{

private int ticket = 100;

public void run(){

while(true){

if(ticket > 0){

System.out.println(Thread.currentThread().getName()+"..slae " + ticket--);

}

}

}

}

class TicketDemo{

public static void main(String[]args){

Ticket t = new Ticket();

Thread t1 = new Thread(t);

Thread t2 = new Thread(t);

Thread t3 = new Thread(t);

t1.start();

t2.start();

t3.start();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值