1、join執行緒
當乙個執行緒需要等待另乙個執行緒執行完畢再執行的話,就呼叫join方法,例如,執行緒 a b ,a要等b執行完再執行,則在a執行時要呼叫b的join方法,使a進入阻塞狀態,當b執行完之後再執行a;
publicclass myrunnable implements
runnable
catch
(interruptedexception e)
}system.out.println(thread.currentthread().getname()+" "+i);}}
}
publicclass myrunnable2 implements
runnable
}}
publicclass
test
}
2、執行緒睡眠
publicvoid
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的執行權,繼續...