資料同步的問題只能夠通過同步**塊或同步方法完成,在本程式中,生產者和消費者代表著不同的執行緒物件,所以此時的同步操作應該設定在message類之中,可以將title與content屬性設定定義為單獨同步方法。
範例:定義同步操作
public class message catch (interruptedexception e)
this.content=content;
}public synchronized string get() catch (interruptedexception e)
return this.title+"--->"+this.content;
}public string gettitle()
public void settitle(string title)
public string getcontent()
public void setcontent(string content)
}
public class producer implements runnable
@override
public void run() else
} }}
public class consumer implements runnable
@override
public void run()
}}
public class threaddemo328
}
執行結果(部分)
木子--->老師
李雷--->學生
木子--->老師
李雷--->學生
李雷--->學生
本程式在message類中定義了兩個同步處理方法,這樣使得不同執行緒在進行公共資料區域操作時都可以保證資料的完整性,解決了資料設定錯亂的問題。 5 12 生產者和消費者
一 生產者和消費者之間的關係 1 生產者將生產出來的資訊不斷存入乙個區域內,消費者將資訊從該區域內不斷讀取出來 生產者錄入資訊 消費者讀取資訊 例 電影票 public class movie public void setname string name public string getinfo...
6 1 生產者 消費者問題
在多執行緒程式中,執行緒之間通常存在分工。在一種常見模式中,一些執行緒是生產者,一些是消費者。需要強制執行幾個同步約束才能使此系統正常工作 在緩衝區中新增或刪除專案時,緩衝區處於不一致狀態。因此,執行緒必須具有對緩衝區的獨佔訪問許可權。如果消費者執行緒在緩衝區為空時到達,則會阻塞,直到生產者新增新專...
26 生產者消費者模型
一 ipc 空間復用 中記憶體隔離開了多個程序直接不能直接互動 ipc指的就是程序間通訊 幾種方式 1 建立乙個共享檔案 缺點 效率較低 優點 理論上交換的資料量可以非常大 適用於 互動不頻繁,且資料量較大的情況 2 共享記憶體 缺點 資料量不大 優點 效率高 適用於 互動頻繁,但是資料量小 3 管...