分叉小格林

发布于 2024-10-19 06:56:53 字数 161 浏览 4 评论 0原文

也许我错过了一些明显的东西(而且是星期五),但是有没有办法在 greenlet 上执行相当于 os.fork() 的操作?我不一定要分叉该进程,我希望采用 greenlet 并运行一组代码,然后运行另一组代码,但具有独立的作用域(如 os.fork() )。

有什么想法或者我应该睡一会儿吗?

Perhaps I'm missing something obvious (and it is a Friday), but is there a way to do the equivalent of an os.fork() on a greenlet? I'm not necessarily looking to fork the process, I'm looking to take the greenlet and run one set of code, then another, but with independent scopes (as with os.fork()).

Any ideas or should I just get some sleep?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

北斗星光 2024-10-26 06:56:53

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

In order to conceptually fork a greenlet, just create another greenlet wrapping your "child function". I also highly recommend gevent, which is built on greenlet. The gevent code has a fork() method, but it forks the Python process and then restarts gevent in the child. I bet that you can implement whatever you are doing in gevent with more readable code than just greenlet.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文