執行緒控制 阻塞 睡眠 讓步

2022-09-16 22:06:35 字數 1031 閱讀 7784

1、join執行緒

當乙個執行緒需要等待另乙個執行緒執行完畢再執行的話,就呼叫join方法,例如,執行緒  a b  ,a要等b執行完再執行,則在a執行時要呼叫b的join方法,使a進入阻塞狀態,當b執行完之後再執行a;

public

class myrunnable implements

runnable

catch

(interruptedexception e)

}system.out.println(thread.currentthread().getname()+" "+i);}}

}

public

class myrunnable2 implements

runnable

}}

public

class

test

}

2、執行緒睡眠

public

void

run()

catch

(interruptedexception e)

system.out.println(thread.currentthread().getname()+" "+i);

}

}

3、執行緒讓步:

執行緒讓步和執行緒睡眠差不多,唯一的區別就是:在讓步期間會放棄cpu的執行許可權  thread的  yiled靜態方法

4、執行緒的優先順序

執行緒優先順序高的比較容易獲得cpu的執行許可權,優先順序低的不太容易獲得cpu的執行許可權,但是當執行緒進行競爭是,不一定優先順序高的一定會獲得執行許可權。

static int max_priority 

執行緒可以具有的最高優先順序。 值是10

static int min_priority 

執行緒可以具有的最低優先順序。 值是1

static int norm_priority 

分配給執行緒的預設優先順序。   值是5

執行緒的讓步與阻塞

執行緒的讓步 執行緒讓步 thread.yield public class testyield class person implements runnable 執行緒阻塞 main是主線程,在主程式中,子執行緒a呼叫join 方法,a執行緒就在主線程之前執行。但所有子執行緒也需要競爭cpu。a執...

執行緒中斷 執行緒讓步 執行緒睡眠 執行緒合併

執行緒中斷 執行緒中斷涉及到三個方法,如下 interrupt 方法用於中斷執行緒,通常的理解來看,只要某個執行緒啟動後,呼叫了該方法,則該執行緒不能繼續執行了,來看個小例子 執行後,我們發現,執行緒t一直在執行,沒有被中斷。其實interrupt 方法並不是中斷執行緒的執行,而是為呼叫該方法的執行...

10 控制線程 執行緒讓步yield

執行緒讓步yield 方法 yield 方法可以讓當前正在執行的執行緒暫停,但它不會阻塞該執行緒,它只是將該執行緒從執行狀態轉入就緒狀態。只是讓當前的執行緒暫停一下,讓系統的執行緒排程器重新排程一次。很有可能,當某個執行緒呼叫了yield 方法暫停之後進入就緒狀態,它又馬上搶占了cpu的執行權,繼續...