CreateFileMapping используется для создания разделяемой памяти в win32 - PullRequest
1 голос
/ 13 июля 2011

CreateFileMapping используется для создания разделяемой памяти в win32. Нужно ли синхронизировать чтение / запись в общую память или это делается автоматически?

1 Ответ

1 голос
/ 13 июля 2011

Ваш вопрос был неясен относительно того, используете ли вы это для общей памяти между потоками или процессами, так что просто для уверенности: для потоков вам не нужно отображение файлов, вся память в одном процессе видна всем потокам (итребуется синхронизация).

Чтобы использовать ее для совместной памяти между процессами: да, вы должны явно синхронизировать доступ к ней, потому что система не может знать, предназначены ли последовательные записи в нее для группировки в одну транзакцию или нет,Совет для этого: чтобы синхронизировать их, вы не можете использовать критические секции (они работают только для потоков внутри процесса), вы можете использовать:

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

...