上篇博文,我們介紹了Condition的簡介及原理,我們這篇重點介紹Condition的await和signal等待/通知機制,以及源碼。
原理相關的內容上篇博文,我們基本已經介紹完了,我們先從一段傳統的生產消費者模型實例代碼引入,然後看Condition接口的源碼,最後一張圖總結。
傳統版生產消費者模式
生產者每生產一條消息,沒有消費者進行消費,就被阻塞,等待被喚醒。消費者每消費一條消息,如果生產者沒有繼續生產,就被阻塞,等待被喚醒。換句話說,生產一條消息,消費一條消息,交替執行。
/**
* 共享資源類
*/
class ShareResource {
private int number =