Java多執行緒五 生產者和消費者模型 單個對單個

2021-07-16 11:00:39 字數 824 閱讀 9907

假如有乙個資源類resouce,其有乙個屬性name屬性和我們賦予的乙個標識為flag屬性。

現在通過啟動多執行緒(其實就是兩個執行緒生產線程和消費執行緒),來達到一邊賦值一邊取值列印的效果。

public class resource
public class productthread implements runnable 

@override

public void run() catch (interruptedexception e)

} else }}

}}

public class consumethread implements runnable 

@override

public void run() else catch (interruptedexception e) }}

}}

}

main方法

public static void main(string args)

最容易弄錯的地方就是,什麼時候呼叫wait方法什麼時候呼叫notify方法,這一點確實不好說。

通常是當這一邊的執行緒不用執行任何**時,那麼久呼叫wait方法,放棄執行權,如果當這邊修改了某標識位之後,

想讓對方執行那麼久執行notify方法。這麼說還是顯得比較抽象,暫時還沒想到比較簡單的說法,還是和應用場景有關,很難總結。

Java多執行緒14 生產者 消費者模型

什麼是生產者 消費者模型 一種重要的模型,基於等待 通知機制。生產者 消費者模型描述的是有一塊緩衝區作為倉庫,生產者可將產品放入倉庫,消費者可以從倉庫中取出產品,生產者 消費者模型關注的是以下幾個點 生產者 模型作為一種重要的模型,它的優點在於 利用wait notify 實現生產者 消費者模型 既...

Java多執行緒基礎 8 生產者 消費者和佇列

利用wait 和notify 實現任務間的協同合作其實是一種非常低階的方式,我們還可以使用同步佇列來解決任務協作問題,blockingqueue在任何時刻都只允許乙個任務插入或者移除佇列,如果消費者試圖從佇列中獲取元素,而此時該隊列為空,那麼佇列可掛起消費者,當佇列內有元素時再恢復消費者任務。比wa...

java多執行緒初探(零)生產者消費者模式 執行緒通訊

測試類 package gcc.twothreadtransdata.producerandconsumer import org.slf4j.logger import org.slf4j.logge ctory 多個執行緒之間通訊 消費者生產者模式 多個生產者和消費者 流程 多個執行緒 生產者,...