, когда thread1 уже приобрел блокировку объекта mutex, если thread2 пытается получить блокировку на одном и том же объекте mutex, thread2 будет заблокирован. вот мои вопросы: 1. Как будет thread2 узнать, что объект mutex разблокирован? 2. будет ли thread2 пытаться приобрести блокировку с заранее заданными интервалами времени?некоторые вопросы относительно pthread_mutex_lock
ответ
Это действительно зависит от ОС, но обычно случается, что thread2 приостанавливается и помещается в список ожиданий, поддерживаемый мьютексом. Когда мьютекс становится доступным, поток в списке ожидания mutex удаляется из списка и помещается обратно в список активных потоков. ОС может запланировать его, как обычно. thread2 полностью успокаивается, пока не сможет получить мьютекс.
Я чувствую непонимание того, как работает мьютекс. Когда поток 2 пытается получить мьютекс, который уже принадлежит потоку 1, вызов, который пытается принять мьютекс, не вернется до, мьютекс станет доступным (если у вас нет тайм-аута с вариантом trylock()).
Так что нить 2 не должна зацикливаться на ней и продолжать пытаться использовать мьютексы (если вы не используете тайм-аут, чтобы вы могли прервать попытку принять мьютекс на основе какого-то другого условия, такого как условие отмены).
Моя интерпретация заключается в том, что OP спрашивал о реализации самого мьютекса. – mschaef
@mschaef: Возможно, вы правы. Трудно сказать уровень понимания ОП на основе формулировки вопроса. –
- 1. Некоторые вопросы о pthread_mutex_lock и pthread_mutex_unlock
- 2. некоторые вопросы относительно $ GOPATH
- 3. Некоторые вопросы относительно UDDI
- 4. Некоторые вопросы относительно проекта базы данных
- 5. Новый (относительно) код воспламенителя: некоторые основные вопросы
- 6. Некоторые вопросы относительно 2d векторов, C++
- 7. Вопросы/Вопросы относительно NSUserDefaults
- 8. Некоторые вопросы относительно SOLR и как это работает!
- 9. У меня есть некоторые вопросы относительно этого трассировку
- 10. Некоторые вопросы относительно простого веб-скребка командной строки (Clojure/ClojureScript)
- 11. Некоторые сомнения относительно HashMap
- 12. C# вопросы относительно кодирования
- 13. Вопросы относительно javascript/jquery
- 14. Вопросы UIDatePicker относительно отображения
- 15. Вопросы относительно команд WPF
- 16. C# Вопросы относительно списков?
- 17. Вопросы относительно матриц
- 18. gdb вопросы относительно символов
- 19. Вопросы относительно Dir VBA
- 20. Вопросы относительно прототипа функции
- 21. некоторые сомнения относительно yield()
- 22. Некоторые вопросы Spring JMS
- 23. pthread_mutex_lock и pthread_mutex_lock в другом потоке
- 24. Некоторые основные вопросы Python
- 25. Некоторые вопросы sabout Typo3 shorcut и некоторые сомнения относительно структуры страницы на демо-сайте
- 26. Начинающие вопросы относительно классов Python
- 27. Простые вопросы Баша относительно процессов
- 28. Вопросы относительно numpy в Python
- 29. Вопросы относительно Joomla и VirtueMart
- 30. Вопросы относительно образца DCT8x8 CUDA
@all thank u guys – lakshman