第6章 多執行緒 4 Thread類的有關方法

2021-10-07 21:09:48 字數 2439 閱讀 8179

void start(): 啟動執行緒,並執行物件的run()方法

run(): 執行緒在被排程時執行的操作。通常需要重寫此方法,將建立的執行緒需要執行的操作寫在裡面。

string getname(): 返回執行緒的名稱

void setname(string name):設定該執行緒名稱

static thread currentthread(): 返回當前執行緒。在thread子類中就是this,通常用於主線程和runnable實現類。—thread.currentthread().getname()

boolean isalive():返回boolean,判斷執行緒是否還活著。

public

class

jointhread

catch

(interruptedexception e)}}

);thread thread2 =

newthread

(new

runnable()

catch

(interruptedexception e)}}

);thread2.

start()

;// 先開啟執行緒2

thread.

sleep

(200);

thread1.

start()

;// 在開啟執行緒1}}

//結果 執行緒2先啟動,當執行到thread1.join()時,執行緒2停止執行,等待執行緒1執行結束,雖然執行緒1啟動比執行緒2遲,但是只有當執行緒1執行結束後,執行緒2才能繼續執行。

執行緒2開始執行...

..執行緒1開始執行...

..執行緒1執行結束...

..執行緒2執行結束...

.

static void yield():執行緒讓步。暫停當前正在執行的執行緒,把執行機會讓給優先順序相同或更高的執行緒。若佇列中沒有同優先順序的執行緒,忽略此方法。執行緒執行yield方法轉入就緒狀態,可能馬上又得到執行。

static void sleep(long millis)(毫秒): 令當前活動執行緒在指定時間段內放棄對cpu控制,進入阻塞狀態,使其他執行緒有機會被執行,不考慮優先順序,不釋放鎖。

時間到後重排隊返回到可執行狀態(就緒),不是執行狀態。丟擲interruptedexception異常。如果呼叫執行緒物件.sleep()方法並不是該執行緒就休眠,在哪乙個執行緒裡面執行了sleep()方法哪乙個執行緒就休眠。

//sleep方法舉例

public

class

threadsleep

catch

(interruptedexception e)}}

}); thread thread2 =

newthread

(new

runnable()

}});

thread1.

start()

;//開啟執行緒1

//讓主線程稍等片刻,確保執行緒1已經執行

thread.

sleep

(300);

thread2.

start()

;//開啟執行緒2}}

//結果

執行緒1開啟執行...

.執行緒1搶到了鎖...

.執行緒2開啟執行...

.執行緒1執行結束...

..執行緒2搶到了鎖...

.執行緒2執行結束...

..

wait()可以讓執行緒從執行態轉換為阻塞態,同時還會釋放執行緒的同步鎖。

相同點:一旦執行方法,都可以使得當前的執行緒進入阻塞狀態。

不同點:

public

class

threadwait

catch

(interruptedexception e)}}

);thread thread2 =

newthread

(new

runnable()

}); thread1.

start()

;//開啟執行緒1

//讓主線程稍等片刻,確保執行緒1已經執行

thread.

sleep

(200);

thread2.

start()

;//開啟執行緒2}}

//結果 執行緒2執行結束後,由於執行緒1沒有被喚醒,所以一直阻塞在那裡......可以使用帶有引數的wait(long mills),當等待的時間結束後,執行緒會被自動喚醒

執行緒1搶到了鎖...

.執行緒2搶到了鎖...

.執行緒2執行結束...

..

第4章多執行緒

package bao9 第4章多執行緒 4.編寫乙個程式,建立兩個執行緒物件,每個執行緒輸出1 5的數。要求執行緒類分別使用繼承thread類和實現runnable介面兩種方式建立。public class demo1 extends thread implements runnable pack...

建立多執行緒的4種方式 Thread類中的常用方法

多執行緒的建立方式一 繼承於thread類 1.建立乙個繼承於thread類的子類 2.重寫thread類的run 將此執行緒執行的操作宣告在run 中 3.建立thread類的子類的物件 4.通過此物件呼叫start 說明兩個問題 問題一 我們啟動乙個執行緒,必須呼叫start 不能呼叫run 的...

C 中的多執行緒使用 Thread 類

好文,現在c 已經建議擯棄使用 suspend,resume 暫停 恢復執行緒,也盡量少用 abort方法中斷乙個執行緒.建議使用執行緒的同步手段有 mutex manualresetevent autoresetevent,monitor.下面再對此進行詳細描述.thread類的建構函式有2類 一...