JAVA线程对象2.1:定义和启动线程的两种方式(参考官方)

创建线程实例有两种方式:

1.Runnable接口:

定义:实现Runnable接口对象,Runnable中定义了一个run()方法,线程需要执行的内容就写在该方法中。

启动:将Runnable对象传递给Thread的构造函数

public Thread(Runnable target)

,Thread对象再调用start()方法启动线程。

示例代码如上文引用。

2.Thread类:

定义:创建Thread类对象。Thread类本身实现了Runnable接口,但run()方法中的内容是空的,需要重写。

启动:Thread类对象调用start()方法。

示例代码如上文引用。

注意:启动线程调用的是start()方法,而不是run()。


那么你该使用哪种方式呢?第一种方式,即实现Runnable接口对象,更具一般性,因为Runnble接口除了被Thread实现之外,还被其他类所实现。第二种通过Thread类实现的方式,在简单的应用中使用起来很方便,但你实现的类必须是Thread子类。本课程更倾向于第一种方式,因为这种方式不仅更加灵活,而且适用于API后面的高层线程管理。


Thread类中定义了许多方法,对管理线程很有用处。包括线程自身调用的一些提供信息、干预线程状态的静态方法。还有一些方法由管理线程的其他线程调用。

原文:

http://docs.oracle.com/javase/tutorial/essential/concurrency/runthread.html

猜你喜欢

转载自myalicedream.iteye.com/blog/2204975