Python: Передача или Сон для длительных процессов?

Постарайтесь выполнить следующие шаги: 1. Запустите cmd как Administrator 2. Бродячая остановка 3. бродячая до 4. если требуется бродяжничество, но как только бродяга вверх.

35
задан Gavin M. Roy 10 February 2009 в 03:15
поделиться

4 ответа

Я вообразил бы , time.sleep () будет иметь меньше служебным в системе. Используя передача заставит цикл сразу переоценивать и привязывать ЦП, тогда как использование time.sleep позволит выполнению быть временно приостановленным.

РЕДАКТИРОВАНИЕ : только для подтверждения точки зрения, если Вы запускаете интерпретатор Python и выполняете это:

>>> while True:
...     pass
... 

можно наблюдать, что Python начинает съедать выше на 90-100% ЦП немедленно, по сравнению с:

>>> import time 
>>> while True:
...     time.sleep(1)
... 

, Который едва ровные регистры на Мониторе Действия (использующий OS X здесь, но это должно быть то же для каждой платформы).

60
ответ дан Jay 8 July 2019 в 00:48
поделиться

Почему сон? Вы не хотите спать, Вы хотите ожидать потоков для окончания.

Так

# store the threads you start in a your_threads list, then
for a_thread in your_threads:
    a_thread.join()

См.: thread.join

24
ответ дан tzot 8 July 2019 в 00:48
поделиться

Вы не даете много контекста тому, что Вы действительно делаете, но возможно Queue мог использоваться вместо явного цикла активного ожидания? В противном случае я принял бы sleep, будет предпочтительно, поскольку я полагаю, что это использует меньше ЦП (как другие уже отметили).

[Отредактированный согласно дополнительной информации в комментарии ниже.]

, Возможно, это очевидно, но так или иначе, что Вы могли , делают в случае, где Вы читаете, информация от блокирования сокетов состоит в том, чтобы иметь один поток, считанный из сокета и сообщения соответственно форматированные сообщения в Queue, и затем иметь остальную часть Ваших потоков "рабочего", читающих из той очереди; рабочие затем заблокируются при чтении из очереди без потребности ни в pass, ни в sleep.

6
ответ дан Johan 8 July 2019 в 00:48
поделиться

Я всегда видел/слышал, что использование сна является лучшим способом сделать это. Используя сон помешает использованию ЦП Вашего интерпретатора Python взбеситься.

4
ответ дан hernan43 8 July 2019 в 00:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: