Есть две нити (назовем их T1 и T2), которые синхронизируются друг с другом подталкивание состояния переменной и мьютекса, как:Последовательность выполнения после условной переменной уведомит
boost::condition_variable global_cond;
boost::mutex global_mutex;
boost::unique_lock<boost::mutex> lock(global_mutex);
thread1() {
global_cond.notify_one();
code_block_a();
}
tread2() {
global_cond.wait(lock)
code_block_b();
}
Допустим, я могу gugarntee, что thread2 приходят сначала подождите, а затем thread1 сделает уведомление.
Вопрос в том, что детерминировано то, что code_block_a() или code_block_b() будут выполняться первыми?
Как правило? Нет. В вашем коде? Кто знает. Возможно, если вы разместите его. –