Что происходит внутри процессора, когда time.sleep вызывается в потоке? - PullRequest
0 голосов
/ 19 апреля 2020

Почему мы используем time.sleep в многопоточных программах и что происходит в CPU, когда эта инструкция выполняется

1 Ответ

2 голосов
/ 19 апреля 2020

time.sleep - это конструкция python (или другой язык приложения), а не инструкция CPU. Как правило, спящие системные вызовы используются, чтобы сообщить планировщику, что вы не будете выполнять sh до тех пор, пока не наступит указанное время (истекает период или проходит абсолютное время). Планировщик выполнит ваши ставки, сделав вызывающий поток непригодным для исполнения до этой эпохи; в то же время, он может запускать другие потоки или самостоятельно работать, если ничего не остается сделать.

Когда наступает эпоха, она обычно доставляется через прерывание, что дает планировщику возможность сделать поток право бежать снова. Если планировщик сочтет это целесообразным, поток может начать выполнение немедленно; в противном случае ему придется ждать своей очереди.

...