SysV IPC semaphores синхронизировать между процессами.
С помощью семафоров POSIX вы можете выбрать через аргумент pshared значение sem_init(3) С помощью pshared = 1 вы можете синхронизировать между всеми задачами (возможно, как потоками, так и процессами), которые имеют доступ к области общей памяти, которую вы поместили семафор в.
Pthread mutexes работы на темы. (Pthreads также имеет переменные условия, которые функционально эквивалентны семафорам).
Версии потоков могут иметь лучшую производительность, так как это процесс, который может управлять общим счетчиком, тогда как семафорами ядро должно это делать.
Синхронизация заключается в определении того, может ли задача выполняться или должна ждать в координации с другими задачами, и она включает в себя связь, например, посредством наращивания и уменьшения семафоров, которые распределяются между задачами.
В каком именно «оболочке» мьютекса/семафора в частности вы говорите? оболочки не обеспечивают эту функциональность в целом. Корпуса действительно обеспечивают блокировку файлов, которые могут использоваться для реализации некоторых функций мьютексов. Но не совсем ясно, что вы имеете в виду. – kaylum
My bad .. Это C не оболочка –
Возможный дубликат [Семафоры и Мьютекс для синхронизации потоков и процессов] (http://stackoverflow.com/questions/12251701/semaphores-and-mutex-for-thread-and-process- синхронизация) – kaylum