Java创建线程的常用的两种方法

来源:互联网 发布:防网络诈骗主题班会 编辑:程序博客网 时间:2024/06/11 15:08

1创建线程的方法-----继承Thread类

java.lang.Thread是java中用来表示线程的类,其中定义的许多方法为完成线程的处理工作提供了比较完整的功能。如果将一个类定义为Thread的子类,那么这个类也就可以表示线程。

定义一个线程类,它继承类Thread并重写其中的方法run().这时在初始化这个类的实例时,目标对象target可以为null,表示这个实例本身具有线程体。但是java只支持单继承,用这种方法定义的类不能再继承其他类。

 

用Thread类的子类创建线程的过程包括三步:

1.      从Thread类派生一个子类,在类中一定要实现run()方法

Class Mission extends Thread{

           public voidrun(){

}

}

2.      然后用该类创建一个对象

Mission newthread = new Mission();

3.      用start()方法启动线程。

newthread.start();

 

public void run(){}被称为线程体,它是整个线程的核心,线程所要完成的任务的代码都定义在线程体中,

2.创建线程的方法二----实现Runnable接口

 

Runnable是java中用以实现线程的接口,从根本上讲,任何实现线程功能的类都必须实现该接口。前面用到的Thread类实际上就是因为实现了Runnable接口,

publicclass Thread extendsObject implements Runnable

所以它的子类才相应的具有线程功能的

 

Runnable接口中只定义了一个方法就是run()方法,也就是线程体。用Runnable接口实现多线程时,也必须实现run()方法,也需要启动start()启动线程,但此时常用Thread类的构造方法来创建线程对象

 

Thread的构造方法中包含有一个Runnable实例的参数。这就是说,必须定义一个实现Runnable接口的类并产生一个该类的实例,对该实例的引用就是适合于这个构造方法的参数。

class PrimeRun implements Runnable {

long minPrime;

        PrimeRun(longminPrime) {

             this.minPrime =minPrime;

        }

 

        public void run() {

             // compute primeslarger than minPrime

             . . .

         }

     }

 

然后,下列代码会创建并启动一个线程:

     PrimeRun p = newPrimeRun(143);

     new Thread(p).start();

 

每个线程都有一个标识名,多个线程可以同名。如果线程创建时没有指定标识名,就会为其生成一个新名称。
0 0
原创粉丝点击