首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的9行Python代码占用了100%的CPU

我的9行Python代码占用了100%的CPU
EN

Stack Overflow用户
提问于 2018-08-04 15:31:06
回答 2查看 1.7K关注 0票数 0

我有一个python脚本(test.py),需要使用以下代码每10 - 15分钟重新启动一次:

代码语言:javascript
复制
import subprocess,time
WAIT=700
file_name = ("test.py")
while True:
    process=subprocess.Popen("python "+ file_name)
    now=time.time()
    while time.time() - now < WAIT:
        pass
    process.kill()

但是占用了我100%的CPU。会出什么问题呢?如果我运行test.py,一切都是正常的。

EN

回答 2

Stack Overflow用户

发布于 2018-08-04 15:41:46

您应该使用.sleep函数,该函数不会使用cpu密集型while循环:

代码语言:javascript
复制
import subprocess,time
WAIT=700
file_name = ("test.py")
while True:
    process=subprocess.Popen("python "+ file_name)
    time.sleep(WAIT)
    process.kill()
票数 2
EN

Stack Overflow用户

发布于 2018-08-04 15:39:33

问题来自代码的这一部分

代码语言:javascript
复制
while time.time() - now < WAIT:
    pass

python花费了所有的CPU时间来尽可能快地执行这个循环(因此可能是每秒百万次)。

在继续循环之前,您需要让进程a休眠。

代码语言:javascript
复制
while time.time() - now < WAIT:
    time.sleep(1)

这样,进程将休眠1秒,并再次执行循环,因此CPU将处于空闲状态。如果你想睡眠700秒,你可以把1改成10,20,甚至WAIT

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51683493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档