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






































二. 生產(chǎn)者類




























三. 線程通信類





















































































四. 測試類





















































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