Блокирует ли поток другой поток? - PullRequest
1 голос
/ 27 февраля 2012
  1. Сингулярность - если потоку удалось заблокировать мьютекс, он уверен, что никакой другой поток не сможет заблокировать поток доисходный поток снимает блокировку.

  2. Ожидание не занято - Если поток пытается заблокировать поток , заблокированный секундойпоток, первый поток будет приостановлен (и не будет потреблять ресурсы процессора), пока блокировка не будет снята вторым потоком.В это время первый поток проснется и продолжит выполнение, заблокировав мьютекс.

С : многопоточное программирование с POSIXПотоки

Вопрос : Я думал, что потоки блокируют переменные мьютекса.Темы не блокируют другие темы?Что означают смелые утверждения выше?Как один поток может заблокировать другой поток?

1 Ответ

2 голосов
/ 27 февраля 2012

Исправления:

  1. Если потоку удалось заблокировать мьютекс, он уверен, что никакой другой поток не сможет заблокировать mutex, пока исходный поток не снимет блокировку.

  2. Ожидание не занято - Если поток пытается заблокировать mutex, который был заблокирован вторым потоком, первый поток будет приостановлен (и не будет использовать ресурсы ЦП), пока блокировка не будет снята вторая нить. В это время первый поток проснется и продолжит выполнение, заблокировав мьютекс.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...