我有兩個程式A和B 共享資料的時候我用的是記憶體共享,A 有12個執行緒不斷的寫,每寫一次就要 通知B一次然后B根據A寫的內容作出不同的操作。資料共享到時沒有問題。但是怎么在A寫完的時候立即通知B作出反應呢,因為這個對實時性要求比較高,我試過用訊息的方式但是訊息還是有點慢。
uj5u.com熱心網友回復:
1.管道:速度慢,容量有限,只有父子行程能通訊2.FIFO:任何行程間都能通訊,但速度慢
3.訊息佇列:容量受到系統限制,且要注意第一次讀的時候,要考慮上一次沒有讀完資料的問題
4.信號量:不能傳遞復雜訊息,只能用來同步
5.共享記憶體區:能夠很容易控制容量,速度快,但要保持同步,比如一個行程在寫的時候,另一個行程要注意讀寫的問題,相當于執行緒中的執行緒安全,當然,共享記憶體區同樣可以用作執行緒間通訊,不過沒這個必要,執行緒間本來就已經共享了同一行程內的一塊記憶體
uj5u.com熱心網友回復:
記憶體共享怎么做到同步呢?轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/247818.html
標籤:進程/線程/DLL
下一篇:再見,localhost!
