Синхронизация разветвленных процессов с pthread_mutex в C - PullRequest
0 голосов
/ 03 марта 2020

Можно ли использовать мьютекс из pthread.h для синхронизации процессов, созданных с помощью fork () из unistd.h? Afaik, оба в конце используют системный вызов clone ().

Я спрашиваю его в области сегмента разделяемой памяти (из ip c .h, shm.h) с критическими данными, которые должны быть защищенным от одновременных записей из разных процессов. В этой памяти семафоры могут быть определены и позже использованы в различных процессах. Почему нельзя использовать мьютексы вместо семафоров?

Почему я спрашиваю?

Прежде всего мне сказали, что это не сработает, не получив никакого объяснения этому. На Inte rnet я не смог найти никакого ответа, поэтому я решил спросить здесь.

Во-вторых, разветвленный процесс более безопасен, чем поток, созданный с помощью pthread_create - если разветвленный процесс падает, остальная часть программы продолжается работать, и если поток завершает работу, то вся программа завершается.

В-третьих, мьютексы кажутся более удобными для человека, чем семафоры в управлении.

...