分叉绿线程
也许我漏掉了什么明显的东西(今天是星期五),但有没有办法在一个绿色线程(greenlet)上做到类似于os.fork()
的效果?我并不是想要分叉进程,而是想要在绿色线程中运行一段代码,然后再运行另一段代码,但希望它们有独立的作用域(就像os.fork()
那样)。
有没有什么想法,还是我应该去睡觉呢?
1 个回答
4
为了简单理解如何“分叉”一个绿色线程(greenlet),你只需要创建另一个绿色线程,把你的“子函数”放进去就行了。我还强烈推荐gevent,它是基于绿色线程开发的。gevent的代码里有一个fork()方法,但这个方法是分叉整个Python进程,然后在子进程中重新启动gevent。我敢说,你用gevent来实现你想做的事情,代码会比单纯用绿色线程更容易读懂。