黑馬程式設計師 多執行緒學習

2021-06-15 01:52:27 字數 1106 閱讀 6445

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

asp.net+android+io開發s、

.net培訓、期待與您交流! ----------------------

13.多執行緒:sleep和wait去別:執行權:正在被cpu處理;執行資格:可以被cpu處理,在處理佇列中排隊

wait:可指定等待的時間,不指定須由notify或notifyall喚醒。

執行緒會釋放執行權,且釋放鎖。

sleep:必須制定睡眠的時間,時間到了自動處於臨時(阻塞)狀態。

即使睡眠了,仍持有鎖,釋放執行權,cpu可以處理其他執行緒。

同步的好處:解決了執行緒的安全問題

同步的弊端:相對降低了效率,同步都會判斷同步鎖

同步的前提:同步中必須有多個執行緒並使用同乙個鎖

同步函式:用synchronized作為函式的修飾符,對需要的功能用函式封裝後同步。同步函式使用的鎖是this。

同步函式和同步**塊的去別:同步函式的鎖是固定的this,同步**塊的鎖是任意物件。建議使用同步**塊。靜態的同步函式使用的鎖是:該函式所屬位元組碼檔案物件,可以使用getclass方法獲取,也可以使用當前類名.class表示

死鎖:1.同步的巢狀可能導致死鎖。

jdk1.5以後將同步和鎖封裝成了物件。並將操作鎖的隱式方式定義到了該物件中,將隱式動作變成了顯示動作。

lock介面:出現替代了同步**塊或者同步函式。將同步的隱式鎖操作變成現實鎖操作。

同時更為靈活。可以乙個鎖上加上多組監視器。

lock():獲取鎖。

unlock():釋放鎖,通常需要定義finally**塊中。

等待/喚醒機制涉及的方法:

1,wait():讓執行緒處於凍結狀態,被wait的執行緒會被儲存到執行緒池中。

2,notify():喚醒執行緒池中乙個執行緒(任意).

3,notifyall():喚醒執行緒池中的所有執行緒。

這些方法都必須定義在同步中。因為這些方法是用於操作執行緒狀態的方法。必須要明確到底操作的是哪個鎖上的執行緒。

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

asp.net+android+ios開發、

.net培訓、期待與您交流! ----------------------

黑馬程式設計師 多執行緒學習

a.啟動執行緒 顧名思義,啟動執行緒 就是新建並啟動乙個執行緒的意思,如下 可實現 thread threadmyfirst new thread new threadstart count 其中的 count 是將要被新執行緒執行的函式。threadstart為委託 b.殺死執行緒 殺死執行緒 就...

黑馬程式設計師 多執行緒

windows phone 7手機開發 net培訓 期待與您交流!一 程序與執行緒 l 程序 乙個執行的程式就是乙個程序,程序包括執行中的程式和程式需要用到的記憶體和系統資源 乙個程序至少有乙個執行緒,乙個程序中多個執行緒可以併發執行 l 執行緒 程式中的乙個執行流,每個執行緒都有自己的專有暫存器 ...

黑馬程式設計師 多執行緒

asp.net android io開發 net培訓 期待與您交流!執行緒與程序的關係 乙個程式就相當於乙個程序 乙個程序至少有乙個執行緒 同乙個程序中的多個執行緒之間可以 併發 執行 執行緒 1 乙個執行緒一次只能完成乙個任務 2 多執行緒方法重入 cpu是不斷的在多個執行緒之間來回切換執行的 3...