pis*_*hio 11 python multithreading
在python中,如果我想让进程或线程永远运行,我通常可以使用空的while循环执行此操作:
while 1:
pass
Run Code Online (Sandbox Code Playgroud)
但是,这会占用不公平的CPU进程.增加一个短暂的睡眠是有效的
import time
while 1:
time.sleep(0.01)
Run Code Online (Sandbox Code Playgroud)
有没有最好和更清洁的方式这样做?谢谢
鉴于相当奇怪的要求(一个过程永远不使用太多CPU),这是相当紧凑的:
import threading
dummy_event = threading.Event()
dummy_event.wait()
Run Code Online (Sandbox Code Playgroud)
......但是,我担心我会屈服于解决你的Y而不是你的X的诱惑.
除此之外,如果您的平台不提供threading模块,这将不起作用.如果您尝试替换dummy_threading模块,请dummy_event.wait()立即返回.
更新:如果您只是为了子进程而保持父进程,则可以wait()在Popen对象上使用该方法,或join()在Process对象上使用该方法.这两种方法都将无限期地阻塞,直到子进程结束.如果您正在使用其他一些子进程API,那么必然会有相同的功能.如果没有,获取进程的PID并使用os.waitpid().
| 归档时间: |
|
| 查看次数: |
12303 次 |
| 最近记录: |