человек спит говорит:
The sleep() function suspends execution of the calling thread until either seconds seconds have elapsed
or a signal is delivered to the thread and its action is to invoke a signal-catching function or to
terminate the thread or process. System activity may lengthen the sleep by an indeterminate amount.
This function is implemented using nanosleep(2) by pausing for seconds seconds or until a signal
occurs. Consequently, in this implementation, sleeping has no effect on the state of process timers,
and there is no special handling for SIGALRM.
так что "только вызывающая нить".
Что касается вашего второго вопроса: это в основном не под вашим контролем, и большинство людей должны переосмыслить свой дизайн и уйтиэто для ОС - ваша ОС контролирует выполнение ваших потоков.Вы можете использовать условия и сигналы для координации действий потоков до некоторой степени .Обычно лучше / проще использовать меньшее количество потоков и управлять задачами, а не напрямую.Даже если вы хотите рассчитать время, во время выполнения нужно потрудиться выяснить, сколько времени отводится вашим потокам.