创建线程实例有两种方式:
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