用
synchronized
關鍵字修飾同步方法。
反對使用stop()
,是因為它不安全
。它會解除由執行緒獲取的所有鎖定
,而且如果物件處於一種不連貫狀態,那麼其他執行緒能在那種狀態下檢查和修改它們。結果很難檢查出真正的問題所在。
suspend()方法容易發生死鎖
。呼叫suspend()
的時候,目標執行緒會停下來,但卻仍然持有在這之前獲得的鎖定。此時,其他任何執行緒都不能訪問鎖定的資源,除非被"掛起
"的執行緒恢復執行。對任何執行緒來說,如果它們想恢復目標執行緒,同時又試圖使用任何乙個鎖定的資源,就會造成死鎖。所以不應該使用
suspend()
,而應在自己的
thread
類中置入乙個標誌,指出執行緒應該活動還是掛起。若標誌指出執行緒應該掛起,便用
wait()
命其進入等待狀態。若標誌指出執行緒應當恢復,則用乙個
notify()重新啟動執行緒
。
Java執行緒stop和suspend的廢棄
jdk1.0定義了stop和suspend方法,stop用來直接終止執行緒,suspend會阻塞執行緒直到另乙個執行緒呼叫resume.stop和suspend都有一些共同的點 都試圖專橫的控制乙個給定了的執行緒的行為.從jdk1.2開始,這兩個方法都被棄用了.stop天生就不安全,而經驗告訴我們呢...
Java執行緒stop和suspend的廢棄
jdk1.0定義了stop和suspend方法,stop用來直接終止執行緒,suspend會阻塞執行緒直到另乙個執行緒呼叫resume.stop和suspend都有一些共同的點 都試圖專橫的控制乙個給定了的執行緒的行為.從jdk1.2開始,這兩個方法都被棄用了.stop天生就不安全,而經驗告訴我們呢...
執行緒的stop方法和interrupt方法
建立測試需要的類 public class mythread extends thread catch interruptedexception e y 列印x和y的值 public void printxandy 用stop方法來中止執行緒 測試用main方法如下 public class tes...