Семафорная синхронизация по значению 0 - PullRequest
1 голос
/ 28 июля 2011

Используя семафоры SysV в ОС UNIX, можно реализовать алгоритм, в котором процесс ожидает, пока значение семафора не достигнет значения 0 (подробности см. В man semop). Теперь все, кажется, говорят, что лучше использовать другие API синхронизации, и поэтому мой вопрос: как я могу получить такое же поведение, используя pthreads, семафоры POSIX или другие подобные API? Если это невозможно, следует ли мне беспокоиться об использовании семафоров SysV?

РЕДАКТИРОВАТЬ: Я имею в виду многопоточный сценарий, потоки создаются с использованием pthreads.

1 Ответ

0 голосов
/ 28 июля 2011

Семафоры Sysv отлично подходят для многопроцессорной синхронизации.Там нет капли в замене.

Если у вас один процесс и используются потоки, то у семафоров sysv большие издержки и они потребляют глобальные системные ресурсы, когда вам это не нужно.Я бы просто использовал семафоры POSIX.

...