Java多執行緒程式設計基礎2

2021-08-18 14:01:06 字數 847 閱讀 4264

一、執行緒的生命週期

新建(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...