我正在整理一些代码,这些代码意味着将一堆遗留代码粘合在一起。部分原因是我使用subprocess
模块从我的代码中调用python
如果我从命令行运行此代码,我会在后台一次运行这些命令的组。我想做的就是复制这种行为
对我来说最明显的方式似乎是使用gevent
,但如果这很容易,那么这不是GIL的常见且简单的解决方法吗?
那么,subprocess
在低级别做什么呢?它是否在我的Python进程的不同线程中运行?
在我的脑海里,我想做这样的事情。
import subprocess
import gevent.monkey
from gevent.pool import Pool
gevent.monkey.patch_all()
def run_one(command):
rc = subprocess.check_call(command)
return rc
def run_async(commands):
pool = Pool(5)
pool.map(run_one, commands)