迎難而上
要求:機器生產零件,工人取走零件,機器先生產一個1號零件,工人取走一個1號零件,機器再生產一個2號零件,工人再取走,然后機器生產一個1號零件,工人取走,機器再生產一個2號零件,工人取走,就這樣依次交替。在機器生產零件的時候,工人禁止取零件;在工人取零件的時候,機器禁止生產零件。
生產狀態圖如下:
程序代碼如下:
此程序的輸出結果如圖:
這個程序涉及到并發多線程,多個線程共享一個資源,如果每個線程在同一時間同時修改這個資源那么勢必會造成資源信息的不正確,為了防止這種情況發生,我們在此程序中定義了兩個同步方法來給這個資源加上一把鎖,在一個時間點上只能有一個線程使用這個資源,其他線程等待。
posted on 2010-11-09 11:51 馮魁 閱讀(218) 評論(0) 編輯 收藏
Powered by: BlogJava Copyright © 馮魁