首页 百科知识 通过实现接口创建线程

通过实现接口创建线程

时间:2022-02-19 百科知识 版权反馈
【摘要】:11.2.2 通过实现Runnable接口创建线程在Java中只有单继承,即只有一个直接父类。此时观察Thread类,有一个构造方法:public Thread此构造方法接受Runnable的子类实例,也就是说可以通过Thread类来启动Runnable实现的多线程,start()可以协调系统的资源。·在程序开发中只要是多线程肯定永远以实现Runnable接口为主,因为实现Runnable接口相比继承Thread类有两个好处:避免点继承的局限,一个类可以继承多个接口;适合于资源的共享。

11.2.2 通过实现Runnable接口创建线程

在Java中只有单继承,即只有一个直接父类。当程序已经继承了其他父类的时候,还需要实现多线程设计,就必须使用Runnable接口来实现线程类的定义,并在该类中定义run()方法。实际上,在真实的编程应用中实现Runnable接口更常用。

使用该接口,可以不用定义专门的线程类,而直接使用原有的类,通过在类声明时增加:

class MyThread implements Runnable

创建类对象时采用Thread(Runnable)构造函数:

MyThread thd1=new MyThread()

Thread myThread=new Thread(thd1)

Thread类中带有Runnable接口的构造方法有:

·Public Thread(Runnable target);

·Public Thread(Runnable target,String name);

·Public Thread(String name);

·Public Thread(ThreadGroup group,Runnable target);

·Public Thread(ThreadGroup group,Runnable target,String name)。

但是在使用Runnable定义的子类中没有start()方法,只有Thread类中才有。此时观察Thread类,有一个构造方法:

public Thread(Runnable target)

此构造方法接受Runnable的子类实例,也就是说可以通过Thread类来启动Runnable实现的多线程,start()可以协调系统的资源。如果用Runnable就可以实现资源共享,下面看例子。

【例11-3】 仍然以1~30累加为例,首先定义共享资源(即计数),通过Thread类完成定义累加线程:

下面通过3个线程对象,同时进行累加:

多线程继承Thread类和实现Runnable接口,两种实现方式的区别和联系如下。

·在程序开发中只要是多线程肯定永远以实现Runnable接口为主,因为实现Runnable接口相比继承Thread类有两个好处:避免点继承的局限,一个类可以继承多个接口;适合于资源的共享。

·研究Runnable接口和Thread之间的联系:public class Thread extends Object implements Runnable,可以发现Thread类也是Runnable接口的子类。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈