1. 程式人生 > >15.停止執行緒 守護執行緒 join() yield()

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()不能保證執行緒交替執行,在僅有主執行緒外兩個子執行緒情況下可以實現交替執行

-----------------------------------------------------