2010-10-04 124 views
1

我想知道是否有人對線程或進程之間共享數據(通過共享內存段)有一些想法或反饋。我正在考慮傳遞線程/處理某個所有權對象(通過管道/同步隊列)。唯一可以訪問數據的線程是擁有該對象(或內存區域)所有權的線程。如果一個線程想要訪問其他地方的對象,那麼它會得到一個異常或阻塞。任何想法如何幹淨地實施這個協議?共享對象協議

+0

這還遠遠不夠。什麼是操作系統?語言?運行時環境?吞吐量要求? – egrunin 2010-10-04 02:07:40

+0

你可以把C語言作爲語言(即使我沒有針對任何特定的操作系統/語言)。我認爲這對這些選擇可能是透明的,即使你是對的,可能會有一些細節可能會加快速度。我應該也許使用了Pattern而不是Protocol。 – Dave 2010-10-04 02:12:53

回答

1

如果您可以擴展可能的語言以包含C++,Boost.Interprocess支持便攜式共享內存。

您應該能夠通過將其與condition variable in Boost.Thread相結合來實現您所描述的阻塞。

+0

的確聽起來確實是一個很好的起點。你是否知道任何描述這種行爲的文檔/軟件(實際上我想到了從MSFT看到的關於他們的下一代操作系統世代稱爲奇點的視頻) – Dave 2010-10-05 13:17:43