Поток запускается, когда процессор выполняет инструкции для этого потока. Планировщик передает процессор в работающие потоки. Спящий поток - это просто запись во внутренних таблицах планировщика; этот поток не потребляет ЦП на себя, так как планировщик знает, что поток не работает, и, следовательно, не дает ему ЦП. Запись концептуально содержит время, когда поток должен быть разбужен.
Спящий поток может иметь косвенные затраты во времени управления самим планировщиком. Это действительно зависит от структур и алгоритмов, используемых планировщиком; Ходят слухи, что планировщик ядра Linux отлично справляется с управлением тысячами спящих потоков, не тратя слишком много времени на то, чтобы решить, какой поток запустить. Некоторые другие операционные системы также не работают, но, как правило, этот эффект незначителен, когда общее количество потоков / процессов меньше тысячи.