【发布时间】:2010-07-12 07:41:22
【问题描述】:
在 python 中,如果我想保持一个进程或线程永远运行,我通常可以用一个空的 while 循环来做到这一点:
while 1:
pass
然而,这会消耗不公平的 CPU 进程。添加一个简短的sleep 会起作用:
import time
while 1:
time.sleep(0.01)
有没有最好或更清洁的方法?
【问题讨论】:
-
线程在等待什么?你为什么不做 time.sleep(1000000)?
-
这是一个类似服务器的应用程序,所以我希望它等待超过几天(1000000 秒)!理论上,一个必须运行永远的线程必须保持运行比非常多的秒数更长的时间
-
除了睡眠或忙循环之外,线程是否在做任何有用的?如果没有,你能把它去掉吗?如果它正在做一些有价值的事情,那就承认吧!这就是我们需要知道的一点来帮助您。
-
除了保持进程运行以便其子进程可以继续工作之外,它没有做任何事情
-
我怀疑这是必要的,因为子进程可以从它们的父进程中分离出来。但是,
while True: time.sleep(0x7FFFFFFF)应该可以工作。
标签: python multithreading