15.停止執行緒 守護執行緒 join() yield()
停止執行緒:
原理:stop()//已過時
只有一種方法,即run()執行結束
開啟多執行緒執行,執行程式碼通常是迴圈結構,只要控制住迴圈,就可以讓run()結束,即執行緒結束
如果執行緒狀態均是wait(),呼叫中斷執行緒方法interrupt(),可強制喚醒凍結執行緒,產生中斷異常,程式碼停止迴圈。
-----------------------------------------------------
守護執行緒:setDaemon(boolean)
定義守護執行緒:
在啟動執行緒前呼叫:
t1.setDaemon(true);
t1.start();
守護執行緒也是使用者執行緒,屬於後臺執行緒
前臺所有執行緒執行結束後,後臺執行緒自動結束
所有執行緒均為守護執行緒時,JVM退出
-----------------------------------------------------
join() :等待該執行緒終止。
t1.join():t1要CPU執行權,主執行緒等待t1執行完
特點:當A執行緒執行到B執行緒的join()時,A執行緒等待至B執行緒執行完,可用來臨時加入執行緒執行
-----------------------------------------------------
優先順序&yield()
優先順序一共有10級,數值越大優先順序越高
預設優先順序5
MIN_PRIORITY:1
NORM-PRIORITY:5
MAX_PRIORITY:10
設定優先順序:
在start()前使用即可:
t1.setPriority(int newPriority);
t1.start();
static yield():暫停當前執行執行緒物件,執行其他執行緒(強制釋放執行權)
稍微減緩執行緒執行頻率,能達到執行緒都有機會平均執行效果
但yield()不能保證執行緒交替執行,在僅有主執行緒外兩個子執行緒情況下可以實現交替執行
-----------------------------------------------------