執行緒按需交替

2021-09-26 18:26:09 字數 977 閱讀 3993

分析:為a,b,c三類執行緒建立三個方法,方法保證每一遍執行的效果為「abc」;設定乙個當前正在執行執行緒的標記;使用condition保證各個執行緒通訊

//2.列印

for (int i=1;i<=1;i++)

//3.喚醒

number=2;

condition2.signal();

}catch (interruptedexception e)finally

}public void loopb(int totalloop)

//2.列印

for (int i=1;i<=1;i++)

//3.喚醒

number=3;

condition3.signal();

}catch (interruptedexception e)finally

}public void loopc(int totalloop)

//2.列印

for (int i=1;i<=1;i++)

//3.喚醒

number=1;

condition.signal();

}catch (interruptedexception e)finally }}

public class testabcalternate 

}},"a").start();

new thread(new runnable()

}},"b").start();

new thread(new runnable()

}},"c").start();}}

執行緒交替列印

建立三個執行緒,a執行緒列印10次a,b執行緒列印10次b,c執行緒列印10次c,要求執行緒同時執行,交替列印10次abc。這個問題用object的wait notify 就可以很方便的解決。主要的思想就是,為了控制執行的順序,必須要先持有prev鎖,也就前乙個執行緒要釋放自身物件鎖,再去申請自身物...

執行緒實現交替任務

塗完蠟才能拋光,拋光完又可以塗蠟 class car 拋光 public synchronized void buffed 等待塗蠟,如果當前沒有塗蠟,則一直等待 throws interruptedexception public synchronized void waitforwaxing t...

多執行緒交替執行

場景 由於業務需要多執行緒併發操作,並且多執行緒之間是有一定的依賴關係,比如a執行緒儲存資料,b執行緒則解析資料,即b執行緒是需要在a 執行緒執行完之後才開始執行,同樣a執行緒儲存資料的也需要b執行緒對資料解析完成後才開始儲存新的資料,因此a與b兩個執行緒就形成了交替實現,當然具體情況比這個複雜一些...