如果我使用gevent调用子进程会发生什么?

2024-04-25 18:06:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我把一些代码放在一起是为了把一堆遗留代码粘在一起。其中一部分涉及使用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)

Tags: 模块方法run代码importdefgeventone