2011-07-13 29 views
1

CreateFileMapping用於在win32中創建共享內存。是否需要同步共享內存讀/寫或自動完成?CreateFileMapping用於在win32中創建共享內存

+0

這是一個很奇怪的問題,在超過運行的CreateFileMapping()一條線程沒有多大意義。您必須等到您拿到手柄後才能使用手柄。另一個進程調用OpenFileMapping。這需要同步,您無法打開尚不存在的映射。 –

+0

也許OP意味着不同線程/進程對共享內存的訪問是否自動同步? –

+0

是的,我的意思是共享內存是否需要同步。 – Hem

回答

1

你的問題並不清楚自己是否使用該線程或進程間共享內存,因此只是要確定:線程你不需要一個文件映射,在一個單一的過程中的所有內存是可見的所有線程(並需要同步)。

要使用共享內存進程間:是的,你必須同步訪問它明確地因爲系統無法知道它連續寫是否意味着被歸類爲一個交易與否。提示要做到這一點:要同步他們,你不能使用criticalsections(他們只爲一個進程內的線程工作),你可以使用:

http://msdn.microsoft.com/en-us/library/aa904937%28v=VS.85%29.aspx

相關問題