總結一下,乙個執行緒有10種方式可以暫停:
1. i/o 阻塞
2. 同步阻塞
3. 放棄:
執行thread.yield()方法可以讓當前執行緒暫停(不會放棄自己的同步鎖),將資源讓給具有同等優先
級的,已經準備好執行的其它執行緒(也可能是自己)。
4. 休眠:
這是比放棄(thread.yield())更有力的放棄方式,不管其他執行緒有沒有準備執行,先自己暫停了再說。
5. 連線到另乙個執行緒:
join() :永久等待
join(long milliseconds) :等待指定時間
6.等待乙個物件:
wait(): 永久等待
wait(long milliseconds) : 等待指定時間
相對應的方法是notify() 和 notifyall() ,這三個方法(wait ,notify ,notify)都要結合 synchronized 使用,即
只能在同步塊或者同步方法中使用。
7.被高優先順序的執行緒搶占
8. 執行緒結束: 包含正常結束和丟擲異常
9.掛起 :這種方式已經廢棄不用
10.停止 : 這種方式已經廢棄不用
執行緒的停止
執行緒停止 執行緒的停止 1.停止乙個執行緒 我們一般都會通過乙個變數去控制的。2.如果需要停止乙個處於等待狀態下的執行緒,那麼我們需要通過變數配合notify方法或者interrupt 來使用。public class threaddemo5 extends thread public synch...
多執行緒 執行緒的停止
thread類中stop方法停止執行緒存在安全隱患,怎麼讓乙個執行緒停止執行呢?執行緒的執行一般都是迴圈控制體,通過改變run方法 迴圈控制條件,即可讓執行緒停止。class threadstopdemo system.out.println thread.currentthread getname...
執行緒之停止執行緒
停止執行緒有三種方法 1.建議正常停止 利用次數,不建議死迴圈 2.建議使用標誌位 設定乙個標誌位 3.不要使用stop或者destoy等過時或者jdk不建議使用的方法舉例說明 想讓乙個正在執行的程式停下來,執行其他程式,執行完以後再進行自己的程式 怎麼來解決呢?可以自己設定乙個標識位.在自己的程式...