在主线程中休眠时运行子进程

问题描述 投票:0回答:1

我正在调试工作中的一个问题。

我本质上有一个可执行文件,包含以下两行:

subprocess.run(# runs some CLI)
time.sleep(X seconds)

在子进程上运行的脚本具有相当稳定的运行时间。为简单起见,假设运行时间为 60 秒。我注意到,当我增加睡眠时间时,子进程运行的脚本的运行时间也会增加相同的时间。例如,如果我让线程休眠 5 分钟,则子进程将需要 6 分钟才能完成——这是我凭经验看到的。

所以我在这里有点困惑。子进程不是在单独的进程上并行运行吗?主线程休眠如何影响子进程?我确实检查过我的程序有 48 个 CPU 可供使用,所以我不认为子进程和主线程是在同一个 CPU 上进行上下文切换,但如果是的话,这就是这种行为的一个可能的解释。

对此还有什么其他可能的解释?

python concurrency subprocess sleep
1个回答
0
投票

subprocess.run(..)
将等待进程执行然后退出。 如果您想同时做某事,可以使用
subprocess.Popen(..)

© www.soinside.com 2019 - 2024. All rights reserved.