執行緒實現交替任務

2021-07-31 14:42:48 字數 852 閱讀 2770

塗完蠟才能拋光,拋光完又可以塗蠟

class car

/*** 拋光

*/public synchronized void

buffed()

/*** 等待塗蠟,如果當前沒有塗蠟,則一直等待

* @throws

interruptedexception

*/public synchronized void

waitforwaxing() throws interruptedexception

/*** 等待拋光,如果當前已經塗蠟,則使塗蠟一直等待

* @throws

interruptedexception

*/public synchronized void

waitforbuffing() throws interruptedexception

}class waxon implements runnable

@override

public void

run()

}catch (interruptedexception e)

system.out.println("ending wax on task");}}

class waxoff implements runnable

@override

public void

run()

}catch (interruptedexception e)

system.out.println("ending wax off task");}}

public class waxomatic

}

執行緒交替列印

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

執行緒按需交替

分析 為a,b,c三類執行緒建立三個方法,方法保證每一遍執行的效果為 abc 設定乙個當前正在執行執行緒的標記 使用condition保證各個執行緒通訊 2.列印 for int i 1 i 1 i 3.喚醒 number 2 condition2.signal catch interruptede...

實現兩個執行緒交替執行

比如執行緒1輸出0,執行緒2輸出0,執行緒1輸出1,執行緒2輸出1。既然有先後順序,優先想到和順序有關的鎖,reentrantlock的公平鎖,等待時間最長的執行緒優先獲取鎖。如下 public class alternatedemo static class task implements run...