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

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 extends Object 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();

 

每个线程都有一个标识名,多个线程可以同名。 如果线程创建时没有指定标识名,就会为其生成一个新名称。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Penguinbupt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值