題目如下:
在生產者/消費者模型中,生產者Producer負責生產數據,而消費者Consumer負責使用數據。多個生產者線程會在同一時間運行,生產數據,并放到內存中一個共享的區域。期間,多個消費者線程讀取內存共享區,消費里面的數據。
要求:
1. 針對上面的場景,請創建2個類,一個叫Producer,一個叫Consumer.
2. Producer類繼承Thread類,并實現把數據放到內存共享區的功能,這個功能要求是線程安全的。在個Producer類中的run方法中,循環20次,每次把一個整數放到內存共享區中。
3. Consumer類也繼承Thread類,并實現在沒有沖突的情況下,從內存共享區中獲取數據,并在標準輸出設備中打印輸出。輸出的格式為:Consumer thread X retrieved integer Y.
4. 最后,創建一個main class,創建10個Procuder線程和4個消費者線程并啟動這些線程。
5. 要求有效代碼行數盡量少,最好不超過100行。
我大概的做了一下,以下是我的代碼實現:
一. 消費者類






































二. 生產者類




























三. 線程通信類





















































































四. 測試類





















































近來發現,去看以前的代碼,都覺得有點傻傻滴,現在的話如果去實現大抵會有所改進,我在進步中嗎?啊哈。