一、執行緒的生命週期
新建(new)、就緒(runnable)、執行(running)、阻塞(blocked)、死亡(dead)。
執行緒類有以下成員函式:
1.void start();//啟動執行緒
2.void join(); //等待被join的執行緒執行完成
3.void join(long millis);//等待被join的執行緒時間最長為millis毫秒,沒完成也不再等了。
4.void join(long millis,int nanos);//等待被join的執行緒的時間最長為millis毫秒加nanos毫微秒(很少用)。
5.static void sleep()//
執行緒休眠
millis
毫秒,進入阻塞狀態,讓給其他任意優先順序的執行緒。
6.static void sleep(long millis,int nanos); //
millis毫秒加naos微秒
執行緒休眠,進入阻塞狀態。
7.void yiled();//暫停執行,進入就緒狀態,只有優先順序與當前執行緒相同或更高才能獲得執行的機會。
8.void setpriority(int newpriority);//設定執行緒優先順序
sleep()和yiled()區別:
sleep()方法暫停當前執行緒後,會給其他執行緒執行的機會,不強調優先順序。yiled()方法只會給相同或更高的優先順序執行的機會。
sleep()進入阻塞狀態,yiled()進入就緒狀態,很可能暫停之後立即被執行。
sleep()方法宣告丟擲interruptedexception異常,yiled沒有生命丟擲任何異常。
sleep()有更好的移植性。
java多執行緒基礎學習 核心程式設計
使用多執行緒的經典條件 1.原始類 2.對原始類使用runnable 找出變化的條件 3.thread t new thread runnable t.start 解決同步問題 reentrantlock lock new reentrantlock code lock.lock try final...
java多執行緒程式設計(一基礎概念)
1 程序和執行緒 程序,是乙個正在執行的程式實體,windows下常見的就是 exe,在任務管理器中可以看見很多個程序。它是執行緒的容器。執行緒,是程序中的乙個執行流。在單執行緒程式設計中,我們的程式只有乙個執行流 主線程的main方法。流,表明執行的過程是有順序的,如main函式中的語句需要一條一...
java多執行緒(2)
1.synchronized 鎖重入 執行緒請求由自己持有的物件時,如果該鎖是重入鎖,請求就會成功,否則阻塞 2.synchronized出現異常時,鎖自動釋放 3.當多個執行緒要同乙個例項時 雙重校驗鎖 public class dubblesingleton catch interruptede...