Эта программа НЕ будет работать бесконечно, как только f2 () будет вызвана вторым потоком, она установит для cond значение false
Согласно определению Async : Функция шаблона async выполняет функцию f асинхронно ( потенциально в отдельном потоке, который может быть частью пула потоков ) и возвращает std :: future, который в конечном итоге будет содержатьрезультат этого вызова функции.
Существует 3 основных потока Тема: f1 поток: f2 поток:
поток будет:
- основной поток
- запуск потока f1 --- выполнение тела f1 в соответствии с жизненным циклом потока
- запуск потока f2 --- выполнение тела f2 и установка cond
приf2 получить шанс зависит от планирования потока и заблокирован, указанный для ex: если вы спите в f1 и f2 получит шанс
мне любопытно увидеть ответы других