Pthread Mutex: pthread_mutex_unlock () отнимает много времени

Я написал многопоточную программу с pthread, используя модель производитель-потребитель.

Когда я использовал профилировщик Intel VTune для профилирования своей программы, я обнаружил, что производитель и потребитель тратят много времени на pthread_mutex_unlock. Я неЯ не понимаю, почему это произошло. Я думаю, что потоки могут долго ждать, прежде чем смогут получить мьютекс, но освобождение мьютекса должно быть быстрым, верно?

Снимок ниже - от Intel VTune. Он показывает коды, где потребитель пытается извлечь элемент из буфера, и время, затрачиваемое каждой строкой кода.

Мой вопрос заключается в том, почему pthread_mutex_unlock имеет такие издержки? Проблема в самом pthread mutex или в способе его использования?

Ответы на вопрос(1)

Ваш ответ на вопрос