Я понимаю, что в pthreads могут происходить ложные пробуждения потоков. Следующее обсуждение было интересным и информативным: Почему pthread_cond_wait имеет ложные пробуждения? . Мой вопрос может быть очевидным, но я хочу убедиться, что я правильно понимаю. Когда @acm делает утверждение, что «... вам всегда нужно проверять предикат в цикле», это означает, что мы должны использовать цикл while для проверки условия, а не для оператора for, так как первый будет-проверить, что условие истинно, в то время как последнее позволило бы, казалось бы, ложно пробужденному потоку продолжать выполнение, даже если условие может больше не выполняться, когда оно достигает ЦП?