如果我使用gevent调用subprocess会发生什么?

时间:2017-04-25 21:29:55

标签: python asynchronous subprocess gevent

我正在整理一些代码,这些代码意味着将一堆遗留代码粘合在一起。部分原因是我使用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)

0 个答案:

没有答案