сигналы — Pthread c ++ и mutex

вопрос о pthread и mutex.

У меня есть потребитель производителя архитектуры с общей очередью.

У меня есть две операции очереди: пуш и поп.

для обеих этих операций я использую мьютекс (lock - implementation - unlock).

Я ничего не понял …

  • Просто использовать мьютексы?

  • Нужно ли мне использовать сигнал или ждать пробуждения потока?

  • Когда поток находит мьютекс заблокированным, этот поток блокируется (блокировка мьютекса является операцией блокировки?)

-1

Решение

  • Всякий раз, когда вы делитесь общим ресурсом, лучше всего использовать mutex. Иногда могут потребоваться семафоры.
  • Вам не нужно использовать сигнал, чтобы разбудить поток, если вы сами не усыпляете его. Обычно, если поток попадает в заблокированный мьютекс, он будет ждать. Алгоритм планирования ЦП позаботится о потоке, и вы можете быть уверены, что он будет разбужен после разблокировки мьютекса без проблем с производительностью.
  • Поток не будет заблокирован, как только он обнаружит заблокированный мьютекс. Поток просто войдет в очередь ожидания, пока алгоритм планирования ЦП не решит, что его следует удалить. Но это действительно зависит от вашего определения того, что вы считаете заблокированным.

Также, пожалуйста, перефразируйте вопрос немного, это было трудно понять.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector