如果說多個執行緒間,不僅僅只涉及到對同乙個資源的競爭,而是還存在對同乙個資源的協作,類似於生產者-消費者模式,這個時候就設計到執行緒間通訊,我們可以通過等待喚醒機制來實現。
情景再現
我們去早餐店吃包子,包子是我們共同的目標,老闆賣包子我們買包子。這就是生產者-消費模式
包子類:
public消費者類:class
baozi
}
public生產者類:class customer extends
thread
@override
public
void
run()
catch
(interruptedexception e)
}system.out.println(getname()+": 包子已經做好了,開吃");
baozi.flag = false
; baozi.notify();
//吆喝一聲 包子吃完了
} }}}
publicclass producer extends
thread
@override
public
void
run()
catch
(interruptedexception e)
}system.out.println(getname()+": 包子沒做好,趕緊做");
baozi.flag = true
; system.out.println(getname()+": 包子做好了,大家來吃吧");
baozi.notify();}}
}}
public執行結果:static
void
main(string args)
執行結果如預期,生產者執行緒負責生產,消費者執行緒負責消費,分工明確,有條不絮。你耕田來我織布
unix domain IPC 程序間通訊簡析
linux系統有多種程序間通訊方式,如訊號 訊息佇列 管道等,socket是其中一種,socket使用unix domain 模式進行程序間通訊 服務端 include include include include include define unix serv tmp unix serv 檔案...
WCF通訊簡單示例
今天寫了乙個wcf demo,給大家分享,說明如下 服務介面類庫wcfservice.dll 服務實現類庫wcfservicimp.dll 服務宿主專案wcfhost 客戶端呼叫專案 wcftest 客戶端呼叫服務的時候,要引用介面類庫 wcfservice.dll 伺服器端宿主 public pa...
串列埠通訊簡單例項
前幾天製作了乙個基於win32控制台的串列埠通訊接收端的程式。今天利用mfc製作了乙個類似超級終端的應用程式。包含了傳送端和接收端。介面如下圖 關鍵 如下 button connect響應函式,開啟串列埠,配置串列埠引數,設定事件掩碼,建立接收端執行緒。void cmfc commdlg onbut...