Что такое POSIX-эквивалент Win32's Mutex? - PullRequest
5 голосов
/ 23 января 2011

POSIX mutex эквивалентен Win32 CRITICAL_SECTION - его область действия ограничена одним процессом.Мьютекс Win32 (фактически называемый «мутантом» в NT) служит механизмом блокировки межпроцессных процессов.Что эквивалентно pthreads для межпроцессных блокировок?

Ответы [ 2 ]

6 голосов
/ 23 января 2011

Это pthread_mutex_t с атрибутом pshared , установленным в PTHREAD_PROCESS_SHARED.Тем не менее, вы несете ответственность за размещение такого взаимного исключения в разделяемой памяти, чтобы все процессы могли получить к нему доступ, так что это не так просто, как API win32.

Возможно, ближе к win32 есть posix или семафор sysv.Традиционно синхронизация между процессами также выполнялась с использованием блокировок файлов, например, flock или lockf (это ни в коем случае не так медленно, как может показаться)

0 голосов
/ 23 января 2011

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

man 7 sem_overview
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...