长沙市,别称星城,湖南省辖地级市、省会、特大城市,国务院批复确定的长江中游地区重要的中心城市、长株潭城市群中心城市。长沙地处华中地区,是全国“两型社会”综合配套改革试验区、中国重要... 长沙

Java实现线程的方式

Java实现线程的方式:Java中有两种主要的实现线程的方法,分别继承了Java.lang.Thread类与实现java.lang.Runnable接口。如果想具体了解Java实现线程的方式,那不妨接着往下看吧!

1、继承Thread类

Thread类是java.lang包中的一个类。从这个类实例化的对象表示线程,程序员需要创建一个Thread实例来启动一个新线程。Thread类常用的两个构造函数如下:

public Thread(String threadName); public Thread();

其中第一个构造函数方法是创建名称为threadName的线程对象。

继承Thread类创建新的线程语法如下所示:

public class ThreadTest extends Thread{ //... }

完成线程的代码放在类的run()方法中。一旦一个类继承的Thread类,可以覆盖run()方法的类,编写代码,实现了线程的功能分成run()方法,然后同时调用start()方法执行线程的线程类,这是一个调用run()方法。

Thread对象需要一个任务来执行,任务是指线程在启动时执行的工作,该工作的功能代码是在run()方法中。这个run()方法必须使用如下的语法格式。

public void run(){ //... }

当一个线程程序被执行时,一个线程被自动创建。主方法就是在这个线程上运行的。当不再有线程启动时,程序就是单线程程序。

main()方法的线程启动由Java虚拟机负责,程序员负责启动自己的线程。语法如下所示。

public static void main(String[] args) { new ThreadTest().start(); }

2、实现Runnable接口

到目前为止,线程是通过扩展Thread类创建的。如果程序员需要继承另一个类(而不是Thread类),并使线程对该程序可用,则需要使用Runnable接口。

例如,一个扩展JFrame类的GUI应用程序不能继承Thread类,因为Java语言不支持多重继承。这时该类需要实现Runnable接口,以赋予它使用线程的能力。实现Runnable接口的语法如下所示。

public class Thread extends Object implements Runnable

实现Runnable接口的程序创建一个Thread对象,使用以上构建方法就可以将Runnable实例与Thread实例关联起来。

Thread类中有两个构造函数方法,如下所示。

public Thread(Runnable r) public Thread(Runnable r, String name)

这两个构造函数的参数中都有Runnable实例。Runnable实例可以使用上面的构造函数与Thread实例相关联。

使用Runnable接口启动新的线程的步骤如下。

(1)建立Runnable对象。

(2)使用参数为Runnable对象的构造方法创建Thread实例。

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

通过Runnable接口创建线程时。程序员首先需要编写一个实现Runnable接口的类,然后实例化该类的对象。这样就建立了Runnable对象。接下来,使用相应的构造方法创建Thread实例。最后,使用该实例调用Thread类中的Start()方法启动线程。