分叉小菜

mat*_*sta 5 python fork greenlets

也许我遗漏了一些明显的东西(现在是星期五),但是有什么办法可以做到与os.fork()greenlet上的等效吗?我并不一定要分担该过程,而是要使用greenlet并运行一组代码,然后运行另一组代码,但要使用独立的范围(如os.fork())。

有什么主意还是应该睡一下?

Spi*_*nim 4

为了从概念上分叉 greenlet,只需创建另一个包装您的“子函数”的 greenlet。我还强烈推荐gevent,它是基于 greenlet 构建的。gevent 代码有一个 fork() 方法,但它会分叉 Python 进程,然后在子进程中重新启动 gevent。我敢打赌,你可以使用比 greenlet 更可读的代码来实现你在 gevent 中所做的任何事情。