标签: python-stackless

Stackless Python的缺点是什么?

我最近一直在阅读关于Stackless Python的内容,与vanilla cPython相比,它似乎有很多优点.它具有所有这些很酷的功能,如无限递归,微线程,延续等,同时比cPython更快(大约10%,如果相信Python维基)与之兼容(至少版本2.5,2.6 和3.0).

所有这些看起来好得令人难以置信.但是,TANSTAAFL,我对Python社区中的Stackless没有太大的热情,而PEP 219从未实现过.这是为什么?Stackless的缺点是什么?Stackless'壁橱里藏着什么骷髅?

(我知道Stackless不提供真正的并发性,只是一种更简单的并发编程方式.它并没有真正打扰我.)

python python-stackless

121
推荐指数
3
解决办法
2万
查看次数

在Python中进行线程化

用于在Python中编写多线程应用程序的模块是什么?我知道语言和Stackless Python提供的基本并发机制,但它们各自的优点和缺点是什么?

python multithreading python-stackless

76
推荐指数
5
解决办法
6万
查看次数

哪个Actor模型库/框架适合python和Erlang一样?

我正在为Python 2.x寻找一个易于学习的Actor库或框架.我尝试了Candygram和Twisted,但我不喜欢它们.我想要一些很容易扩展到suppero Greenlet(= stackless python)的东西.

  • Candygram太老了.
  • 扭曲太复杂了.
  • Gevent:目前还不清楚它是否能支持Actors模型.

你有什么建议?

python erlang actor python-stackless

44
推荐指数
4
解决办法
2万
查看次数

我将使用Stackless Python做什么?

有很多与Stackless Python相关的问题.但是没有人回答我的问题,我想(如果错了,请纠正我 - 拜托!).有一些关于它的嗡嗡声所以我很想知道.我会用Stackless做什么用的?它比CPython好吗?

是的它有绿色线程(无堆栈),只要没有操作阻塞(像Ruby的线程?),它可以快速创建许多轻量级线程.这个有什么用?它有什么其他功能我想用于CPython?

python python-stackless

42
推荐指数
6
解决办法
1万
查看次数

Eventlet或gevent或Stackless + Twisted,Pylons,Django和SQL Alchemy

我们广泛使用Twisted来处理需要大量异步io的应用程序.在某些情况下,东西是cpu绑定的,为此我们产生了一个进程池来完成工作,并有一个系统来管理多个服务器上的这些 - 所有这些都是在Twisted中完成的.效果很好.问题是很难让新团队成员加快速度.在Twisted中编写异步代码需要近乎垂直的学习曲线.就像人类自然不这么认为那样.

我们也许正在考虑采用混合方法.也许保持xmlrpc服务器部分和进程管理在Twisted中并在代码中实现其他东西,至少在某种程度上看起来是同步的,而不是这样.然后我又喜欢明确的隐含,所以我不得不考虑更多.无论如何,在greenlets上 - 这些东西有多好用?所以有Stackless,你可以从我的Gallentean头像中看到,我很清楚它在第一手使用CCP的旗舰EVE Online游戏方面取得了巨大的成功.那么Eventlet或gevent呢?好吧现在只有Eventlet与Twisted一起使用.然而gevent声称速度更快,因为它不是纯粹的python实现,而是依赖于libevent.它还声称具有较少的特性和缺陷.GEVENT据我所知,它由1个人维护.这让我有点怀疑,但是所有伟大的项目都是这样开始的...然后就是PyPy - 我还没有读完那篇文章 - 只是在这个帖子中看到它:Stackless的缺点.

令人困惑 - 我想知道该怎么做 - 听起来像Eventlet可能是最好的选择,但它真的足够稳定吗?那里的任何人有经验吗?我们应该选择Stackless,因为它已经存在并且是经过验证的技术 - 就像Twisted一样 - 并且它们可以很好地协同工作.但我仍然不愿意使用单独的Python版本来完成这项工作.该怎么办....

这个有点令人讨厌的博客文章对我来说很重要:对于Grownups的异步IO 我没有得到Twisted就像Java一样对我而言Java通常是你处于线程思维中的地方,但无论如何.然而,如果那个猴子补丁的东西真的像那样工作那么哇.哇哇!

python pypy gevent eventlet python-stackless

36
推荐指数
1
解决办法
2万
查看次数

为什么发酵机不能被腌制?

Python的泡菜(我说的是标准的Python 2.5/2.6/2.7)不能腌制锁,文件对象等.

它也不能pickle生成器和lambda表达式(或任何其他匿名代码),因为pickle实际上只存储名称引用.

在锁和依赖于操作系统的功能的情况下,原因为何你不能咸菜他们是明显的,是有道理的.

为什么你不能发泡?


:只是为了清楚起见, -我有兴趣的根本原因(或假设和进入该设计决策选择)为什么,而不是"因为它给你一个味酸错误".

我意识到这个问题有点广泛的目标,所以这里有一个经验法则,你是否回答:"如果这些假设被提出,或者允许的发电机的类型在某种程度上受到限制,那么酸洗发电机会再次工作吗?"

python generator pickle python-stackless

36
推荐指数
2
解决办法
9975
查看次数

Python Comet Server

我正在构建一个具有实时源的Web应用程序(类似于Facebook的新闻源),我希望通过长轮询机制进行更新.我理解使用Python,我的选择几乎要么使用Stackless(从他们的Comet wsgi示例构建)或Cometd + Twisted.遗憾的是,关于这些选项的文档很少,我无法在线找到关于Python上彗星生产规模用户的好信息.

有没有人在生产系统中成功实现Python上的彗星?你是怎么做的,我在哪里可以找到实现自己的资源?

python cometd python-stackless

31
推荐指数
3
解决办法
2万
查看次数

Python/Erlang:Twisted,Stackless,Greenlet,Eventlet和Coroutines有什么区别?它们与Erlang进程类似吗?

我的不完全理解是Twisted,Stackless,Greenlet,Eventlet,Coroutines都使用非常轻量级和快速切换的异步网络IO和用户态线程.但我不确定它们之间有什么区别.

它们听起来与Erlang进程非常相似.它们几乎是一回事吗?

任何能够帮助我更多地理解这个主题的人都将不胜感激.

python erlang asynchronous nonblocking python-stackless

30
推荐指数
3
解决办法
6966
查看次数

Stackless python和multicores?

所以,我正在玩Stackless Python并且脑子里出现了一个问题,也许这是"假设的"或"常见的"知识,但我发现它实际上写在无堆栈网站上的任何地方.

Stackless Python是否利用多核CPU?在普通的Python中,你有GIL不断出现并且(使用多个核心)需要使用多个进程,这对Stackless来说也是如此吗?

python concurrency multithreading multicore python-stackless

24
推荐指数
1
解决办法
8072
查看次数

多处理还是多线程?

我正在制作一个用Python运行模拟的程序,带有一个wxPython接口.在程序中,您可以创建模拟,程序为您渲染(=计算)它.有时渲染可能非常耗时.

当用户启动模拟并定义初始状态时,我希望程序在后台连续渲染模拟,而用户可能在程序中执行不同的操作.有点类似于填充的YouTube风格的条形图:您可以仅在渲染点进行模拟.

我应该使用多个进程还是多个线程或者什么?人们告诉我使用这个multiprocessing软件包,我检查了它看起来不错,但我也听说过程序,不像线程,不能分享很多信息(我想我的程序需要分享很多信息.另外我还听说过Stackless Python:它是一个单独的选项吗?我不知道.

请指教.

python multithreading multicore multiprocessing python-stackless

24
推荐指数
6
解决办法
8796
查看次数