При работе с семафорами, часто для обеспечения синхронизации между потоками, мне полезно инициализировать семафор до нуля.Posix: Как инициализировать мьютекс в заблокированном состоянии?
Таким образом, у меня может быть часть кода, выполняемая только после того, как другой поток сигнализировал об этом семафоре.
Можно ли это сделать и с мьютексами?
Я объясняю лучше: когда я инициализирую Mutex Posix (например, через pthread_mutex_init(&mutex,NULL)
), он обычно инициализируется в незаблокированном состоянии, так что первый поток, пытающийся заблокировать его, будет успешным.
Мне было интересно, есть ли способ инициализировать мьютексы в заблокированном состоянии (эквивалент использования sem_init(&sem,0,0)
с семафором), возможно, используя некоторые атрибуты для мьютекса или что-то еще.