У меня есть кусок кода, который решает проблему многопоточности (с общими ресурсами), например:
CRITICAL_SECTION gCS;
InitializeCriticalSection(&gCS);
EnterCriticalSection(&gCS);
// Do some shared resources stuff
LeaveCriticalSection(&gCS);
В на этой странице MSDN написано: «Потоки одного процесса [my bold] могут использовать объект критического раздела для синхронизации взаимного исключения».
Итак, мой вопрос: как насчет случая, когда операционная система решает разделить потоки на разные процессы или даже разные процессоры.
Действительно ли EnterCriticalSection
не выполняет работу? И если ответ «критические разделы не помогают при многократной обработке», какова альтернатива?
Я предпочитаю не использовать классы Boost.