sleep()
не является координационной функцией. Такого никогда не было. sleep()
заставляет ваш процесс делать именно это - ложиться спать, не работать вообще в течение определенного периода времени.
Вы были дезинформированы. Возможно, ваш источник имел в виду то, что известно как откат после сбоя захвата блокировки, и в этом случае может быть уместным рандомизированное sleep
.
Способ, которым обычно устанавливается относительный порядок событий между процессами (т. Е. Создается грань, предшествующая событию), заключается в использовании структуры управления параллелизмом, такой как условная переменная , которая вызывается только при определенном точка, или более тупой барьер , который заставляет каждый ударный поток ждать, пока все остальные также не достигнут этой точки в программе.