塗完蠟才能拋光,拋光完又可以塗蠟
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...