執行緒排程之多執行緒迴圈列印ABCABC

2021-09-19 20:11:32 字數 854 閱讀 8241

但是我有點看不明白,於是就自己改寫了下,後面分析。

執行緒類:

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...