1、執行緒簡介:
世間萬物會同時完成很多工作,如人體同時進行呼吸、血液迴圈、思考問題等活動,使用者既可以使用計算機聽歌也可以使用它列印檔案,而這些活動完全可以同時進行,這種思想在Java中稱為併發,而將併發完成的每一件事情稱為執行緒。Java語言提供併發機制,程式設計師可以在程式中執行多個執行緒,每一個執行緒完成一個功能,並與其它執行緒併發執行,這種機制稱為多執行緒。
2、實現執行緒的方式
在Java中主要提供兩種方式實現執行緒,分別為繼承java.lang.Thread類與實現java.lang.Runnable介面。
(1)繼承Thread類
Thread類是java.lang包中的一個類,從這個類中例項化的物件代表執行緒,程式設計師啟動一個新執行緒需要建立Thread例項。Thread類常用的構造方法如下:
public Thread(String threadName)
public Thread()
第一個構造方法是建立一個名稱為threadName的執行緒物件。繼承Thread類建立一個新的執行緒語法格式如下:
public class ThreadTest extends Thread{
//................
}
完成執行緒真正功能的程式碼放在類的run()方法中,當一個類繼承Thread類後,就可以在該類中覆蓋run()方法,將實現該執行緒功能的程式碼寫入run()方法中,然後同時呼叫Thread類的start()方法執行執行緒,本質上,start()方法執行對run()方法的呼叫。如果start()方法呼叫一個已經啟動的執行緒,系統會丟擲IllegalThreadStateException異常。
3、主執行緒
當Java程式啟動時,會立即開始執行一個執行緒,因為它是程式開始時執行的程式,所以,這個執行緒通常稱為程式的主執行緒。主執行緒很重要:
- 其它子執行緒都是從主執行緒產生的。
- 通常,主執行緒必須是最後才結束執行的執行緒,因為它要執行各種關閉動作。
儘管主執行緒是在程式啟動時自動建立的,但是可以通過Thread物件對其進行控制。呼叫currentThread()方法獲取對主執行緒的一個引用。該方法是Thread類的公有靜態成員,一般形式 static Thread currentThread() ;這個方法返回對呼叫它的執行緒的引用。得到對主執行緒的引用,就可以控制主執行緒了。
當執行一個程式時,就自動產生一個執行緒,主方法正是在這個執行緒上執行的。當不再啟動其它執行緒時,該程式就為單執行緒程式。主方法執行緒啟動由Java虛擬機器負責,程式設計師負責啟動自己的執行緒。一般語法:
public static void main (String[] args){
new ThreadTest().start() ;
}
該例項:
String getName() | 獲取執行緒的名稱 |
int getPriority() | 獲取執行緒的優先順序 |
boolean isAlive() | 確定執行緒是否仍然在執行 |
void join() | 等待執行緒終止 |
void run() | 執行緒的入口點 |
static void sleep(long millis) | 掛起執行緒一段時間,毫秒計 |
void start() | 通過呼叫執行緒的run()方法啟動執行緒 |