【java开发】并发编程——创建子线程

来源:互联网 发布:java调用不同类的实例 编辑:程序博客网 时间:2024/06/07 19:23

一、如何定义一个子线程

(1)implements Runnable——实现抽象run()

public class LiftOffimplements Runnable{

public void run(){

while(countDown-->0){

System.out.println(status());

Thread.yield();

}

}

Runnable中定义了一个抽象run方法,也就是说子类需要实现run()。

(2)继承Thread类——重写run()

Thread类本身已经implements Runnable,里面有一个抽象的run(),以及一个本身的静态runnable属性。

public class AddNumberextends Thread{

public void run(){

while(countDown-->0){

System.out.println(status());

Thread.yield();

}

}

总结:

(1)Runnable就是一个抽象类。新建Runnable线程也就是实现一个抽象类的抽象方法。

并把run()写成死循环。  然后在main方法中调用这个死循环的run()就是一个新的线程了。

(2)继承Thread类方式,实际上也是通过runnable的方式来新建的线程,因为Thread也是实现了runnable接口。  

说到底,线程的执行实际上都是执行了runnable的run()死循环方法。

实现runnable接口或者继承Thread都是新建一个子线程,而线程之前都是并发cpu切片执行。

二、main方法中调用

public static void main(String[]args) {

(1)创建runnable的实例,调用run()

LiftOff launch =new LiftOff();

launch.run();

(2)创建Thread的实例,调用run()或者start()

AddNumber addNumber=new AddNumber();

addNumber.start(); addNumber.run();

(3)调用thread的构造方法,new Thread(Runnable)

    Thread thread=new Thread(new Runnable() {

@Override

public void run() {

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

System.out.println(i);

}

}

});

thread.start();

}

 

 

 

 

 

 

 

 

 

0 0