Greenlets本身真的有用吗?

Noob Saibot

我在概念化Greenlets时遇到了一些麻烦。我了解在同一过程中在运行的功能之间进行切换的能力如何打开通往无限可能性的大门。但是我还没有遇到任何有关它们如何解决标准python技术无法解决的问题的示例(除了发电机嵌套函数问题外,老实说...“ meh”)。

从greenlet的主页上获取以下示例该示例基本上是一种更复杂的方法:

def test0():
    print 12
    print 56
    print 34

我知道这只是多余的示例,但这似乎是greenlets可以做的长短。除非你多大的控制狂说的,你必须是何时,何地以及如何执行的应用程序中的每一行代码,如何谁决定一个test0使用greenlets改进?或以GUI为例(首先让我对greenlets感兴趣);不难考虑不需要while循环的策略,不是process_commands吗?

我已经看到可以使用greenlet完成一些很酷的事情;但只能与在其他程序包(例如Stackless,gevent等)中实现的其他某些暗法术结合使用。即使有这些,greenlet还是不够的,需要它们进行子类化。

我的问题:

现实世界中有哪些例子可以说明如何单独使用greenlet来增强python的功能?我怀疑答案就在于网络-这可能就是为什么我不明白。但是还有其他吗?

伊芙

请注意,您的示例将所有prints明确地编织到一个函数中。在真实的程序中,您不仅具有两个功能,而且还具有多个功能。您具有任意数量的函数,其中一些甚至来自您无法控制的第三方库,并且重写所有代码以插入所有语句并不是那么简单。

图形用户界面实际上是一个很好的例子:通过让事件循环(这是您处理命令在实践中,BTW方式)挂起自己的时候没有活动看,你的GUI可以保持互动在同一线程上。如果事件循环必须真正停止并等待用户按下某个键,则您的GUI将冻结,因为不会告诉操作系统重绘该窗口。

并不是说我特别喜欢gevent。我将赌注放在stdlib asyncio库上。:)但这实际上是相同的想法:当您要做的工作涉及很多等待时,请同时运行其他代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Greenlets本身真的有用吗?

来自分类Dev

Scala的期货真的有用吗?

来自分类Dev

代码混淆在javascript中真的有用吗?

来自分类Dev

sudo的蛮力保护真的有用吗?

来自分类Dev

构造函数中的@Value 真的有用吗?

来自分类Dev

“var d = 文档;” 真的有用吗?

来自分类Dev

L2 HW预取器真的有用吗?

来自分类Dev

.cpp文件有用吗?

来自分类Dev

天真的dd-wrt用户-将ping限制在我的家庭网络中-子网有用吗?

来自分类Dev

$ watch在这里有用吗?

来自分类Dev

Observable.Interval对高频事件有用吗?

来自分类Dev

嵌套的Using语句有用吗?

来自分类Dev

仍然对modernizr.js有用吗?

来自分类Dev

不受范围限制的枚举仍然有用吗?

来自分类Dev

uplus功能有用吗?

来自分类Dev

Winsock中的QoS API有用吗?

来自分类Dev

混淆代码后,PDB文件有用吗?

来自分类Dev

C ++:“ this”指针没有用吗?

来自分类Dev

重复在数据集中有用吗?

来自分类Dev

如今window.open()仍然有用吗?

来自分类Dev

动态url变量对PHP有用吗?

来自分类Dev

使用Virtualbox进行游戏,对您有用吗?

来自分类Dev

ACPI在服务器上有用吗?

来自分类Dev

主键上的独特选择有用吗?

来自分类Dev

jQuery的多重过滤的用法有用吗?

来自分类Dev

使用Virtualbox进行游戏,对您有用吗?

来自分类Dev

ACPI在服务器上有用吗?

来自分类Dev

这些以下代码对有用吗?

来自分类Dev

Observable.Interval对高频事件有用吗?