但是我有點看不明白,於是就自己改寫了下,後面分析。
執行緒類:
package threadabc;
public class threadprint implements runnable
@override
public void run()
try catch (interruptedexception e) }}
}}
main主函式:
public static void main(string args)
關鍵:
a物件鎖對應a執行緒
b物件鎖對應b執行緒
c物件鎖對應c執行緒
流程:
1. 執行a執行緒:
a物件,b物件傳入a執行緒
當a執行緒執行完成後,將a執行緒關入a物件鎖中,並且從b物件鎖中喚醒b執行緒,因為b鎖中還沒有b執行緒所以沒用。
因為按照主線程順序,接下來執行執行緒b:
b物件,c物件傳入a執行緒
當b執行緒執行完成後,將b執行緒關入b物件鎖中,並且從c物件鎖中喚醒c執行緒,因為c物件鎖中還沒有c執行緒所以沒用。
因為按照主線程順序,接下來執行執行緒c:
c物件,a物件傳入a執行緒
當c執行緒執行完成後,將c執行緒關入c物件鎖中,並且從a物件鎖中喚醒a執行緒。此時只有a執行緒執行任務。
由此乙個迴圈結束,開啟重複迴圈
執行緒排程之多執行緒迴圈列印ABCABC
但是我有點看不明白,於是就自己改寫了下,後面分析。執行緒類 package threadabc public class threadprint implements runnable override public void run try catch interruptedexception e...
JAVA多執行緒列印ABC
多執行緒中乙個很有名的例題就是多執行緒列印 abc,要求用三個執行緒,分別是列印 a,列印 b,列印 c,輪流喚醒和鎖死,最終列印出10組 abc。created by 123 on 2016 8 30.public class printabc 將列印a,列印b,列印c分別列為三個互斥的方法,寫在...
java 多執行緒列印ABC
方法千千中,開始看到這個,我立馬想到了cyclicbarrier,能讓abc在列印在一組,可是控制不了abc列印的順序 後來自己用了乙個最簡單的synchronize的迴圈實現了,可以感覺沒什麼成就感 package dirk.zhang public class printabc class th...