Pthreads занята внутренним ожиданием? - PullRequest
0 голосов
/ 10 февраля 2020

Я хотел бы знать, если pthreads выполняет занята внутренним ожиданием при вызове pthread_cond_timedwait()?

Я анализирую многопоточную программу и мне нужно знать, если Поток потенциально блокирует ресурсы при вызове вышеуказанной функции.

Платформа: Intel x86_64, CentOS 7.5.1804 с G CC 5.3.0

1 Ответ

2 голосов
/ 11 февраля 2020

Как вы прочтете в их документации, функции pthread_cond_wait() и pthread_cond_timedwait() заставляют вызывающий поток блокировать до тех пор, пока не будет сообщено CV, или, в последнем случае, не наступит указанное время , (Или поток отменяется, или он временно вызывается для обработки сигнала, или ...) Блокировка не просто означает, что поток не возвращается из функции. Это означает, что поток не запланирован ни на одном исполнительном устройстве, пока он остается заблокированным. Таким образом, нет, потоки, заблокированные в pthread_cond_timedwait(), не заняты - ждите.

...