@Venot

Как процессы используют мьютекс?

Мью́текс - примитив синхронизации, обеспечивающий взаимное исключение исполнения критических участков кода.
Если я пишу свое приложение, для потоков я могу создать мьютекс, и поток будет проверять может ли он получить доступ к этому участку, а если 2 разных процесса, как другой процесс может понять имеет ли он доступ или нет?
  • Вопрос задан
  • 259 просмотров
Решения вопроса 1
leahch
@leahch Куратор тега Linux
3D специалист. Dолго, Dорого, Dерьмово.
Вариантов три (в posix), настраивается через pthread_mutexattr_settype()
- PTHREAD_MUTEX_NORMAL блокировка при попытке захвата - поток будет ждать, пока ресурс не освободится
- PTHREAD_MUTEX_RECURSIVE рекурсивный захват - тот же самый поток сможет повторно захватить русурс
- PTHREAD_MUTEX_ERRORCHECK вылет с ошибкой, если ресурс занят

Ну и ненужно забывать, что есть еще и семафоры, у которых есть счетчик. Например, блокировать доступ, если уже 5 потоков или процессов захватили семафор.

А , еще забыл, если процессы, то для этого есть shared memory - туда и помещать семафоры и мьютексы. С мьютексами не уверен точно, а вот семафоры туда нужно !
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
gbg
@gbg Куратор тега Linux
Любые ответы на любые вопросы
Для этого надо научиться делать две вещи:
1) Делать осмысленные заголовки своим вопросом, чтобы не было как здесь - заголовок нерелевантен телу вопроса.
2) Помещать созданные мьютексы в память, расшаренную между процессами - тогда процессы смогут по ним синхронизироваться.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы