Я хочу реализовать блокировку мьютекса. Из моего понимания, mutex.lock() должен работать как 1) проверка блокировки владельца 2), если замок находится в собственности, положить нить в очереди ожидания 3) приостановить этот поток до другого потока отправить жди сигналприостановить pthread?
Однако нет ничего похожего на pthread_suspend(), а затем как приостановить? Я обнаружил, что кто-то говорит, что использует pthread_con_wait(), но кажется, что если я хочу использовать эту функцию, мне нужно сначала установить блокировку pthread_mutex, которая не имеет смысла использовать pthread_mutex внутри моего мьютекса.
Ну, если мое понимание мьютекса неверно, пожалуйста, исправьте меня.
Спасибо.
то что делает проверка спин-ожидания (после того, как поток вставлен в Q)? как это? «while (lockOwner! = self)», тогда в чем разница между этим и блокировкой спина ... – user956159