java中可以實現乙個執行緒的方法

2021-05-21 18:10:05 字數 564 閱讀 2885

有兩種實現方法,分別是繼承

thread

類與實現

runnable介面用

synchronized

關鍵字修飾同步方法

反對使用

stop()

,是因為它不安全。它會解除由執行緒獲取的所有鎖定,而且如果物件處於一種不連貫狀態,那麼其他執行緒能在那種狀態下檢查和修改它們。結果很難檢查出真正的問題所在。

suspend()

方法容易發生死鎖。呼叫

suspend()

的時候,目標執行緒會停下來,但卻仍然持有在這之前獲得的鎖定。此時,其他任何執行緒都不能訪問鎖定的資源,除非被"掛起

"的執行緒恢復執行。對任何執行緒來說,如果它們想恢復目標執行緒,同時又試圖使用任何乙個鎖定的資源,就會造成死鎖。所以不應該使用

suspend()

,而應在自己的

thread

類中置入乙個標誌,指出執行緒應該活動還是掛起。若標誌指出執行緒應該掛起,便用

wait()

命其進入等待狀態。若標誌指出執行緒應當恢復,則用乙個

notify()

重新啟動執行緒。

乙個程序可以建立多少執行緒

理論上,乙個程序可用虛擬空間是2g,預設情況下,執行緒的棧的大小是1mb,所以理論上最多只能建立2048個執行緒。如果要建立多於2048的話,必須修改編譯器的設定。include include includehandle hprocess handle hthread dword winapi a...

java 乙個執行緒控制另乙個執行緒

兩種方法,乙個用標記變數,另乙個用語法 不多說,直接 主方法一 send s new send s.start receive r new receive r.start class send extends thread s system.out.println s sleep 500 catch...

關於java執行緒的乙個問題

最近在寫乙個程式.其中就遇到了這樣乙個問題.我希望實現兩個或多個執行緒,而這些執行緒的順序是 thread thread 2,5,main a 這是執行緒2呼叫b時列印出的 thread thread 3,5,main a 這是執行緒3呼叫b時列印出的 上面的順序是我所希望的.但往往會是這樣的結果 ...