Stackless Python

✍ dations ◷ 2025-08-02 21:13:51 #并发计算,Python

Stackless Python或称简称Stackless,是一个Python编程语言解释器,这么称呼的原因是它避免了依赖C调用栈为自己的堆栈。在实际中,Stackless Python使用了C堆栈,但是这个堆栈在函数调用之间是被清除的。Stackless Python的最突出特征是微线程,它避免了与操作系统线程有关的大量开销。在Python特征之外,Stackless还增加了协程、通信通道和任务序列化。

对于Stackless Python,一个运行的程序被分解成微线程,由语言解释器自身而非操作系统内核管理,上下文切换和任务调度纯粹在解释器内完成,因而可以被视作是一种形式的绿色线程。微线程管理在同一个CPU核心上一个程序的不同子任务的执行,Stackless Python不移除Python的全局解释器锁, 也不使用多线程或多进程。所以它只允许在一个共享CPU核心上的协作式多任务而非并行,最初不能获得而现在有了某种形式的抢占。

由于相当数量的源代码变更,Stackless Python不能在现存的Python安装上作为一个扩展或库来安装。它自身是完整的Python发行。大多数的Stackless Python的特征也在PyPy中实现了,它是自我寄宿(英语:Self-hosting (compilers))的Python解释器和JIT编译器。

尽管整个Stackless Python是一个独立发行,它的上下文切换功能已经成功的打包为叫做greenlet的CPython扩展。它被用在很多库,比如gevent,用来提供CPython的绿色线程解决方案。Python现在已经接受了对绿色线程的原生解决方案:await/async。

Stackless Python广泛的使用在大规模多玩家在线游戏Eve Online(英语:Eve Online)的实现和IronPort(英语:IronPort)的邮件平台。

相关

  • 行星运动的定律开普勒定律是由德国天文、数学家约翰尼斯·开普勒所发现、关于行星运动的定律。他于1609年在他出版的《新天文学》科学杂志上发表了关于行星运动的两条定律,又于1618年,发现了
  • 单元操作单元操作是在化学工业生产中具有共同的物理变化特点的基本操作,是由各种化工生产操作概括得来的。单元操作和化工单元过程一起,组成学习化学工业生产的基础知识。单元操作是化
  • 新世界酒店倒塌事件新世界酒店倒塌事件(英语:Collapse of the Hotel New World;马来语:Runtuhnya Hotel New World;泰米尔语:நியூ வர்ல்டு சம்பவம்)发生于1986年3月15日,是新加坡自
  • 伊莱·赫克歇尔伊莱·菲利普·赫克歇尔(英语:Eli Filip Heckscher,1879年11月24日-1952年12月23日),是瑞典政治经济学家和经济史学家。赫克歇尔生于瑞典的显赫犹太家庭,父亲是丹麦出生的商人Isido
  • 绪形拳绪形拳(日语:緒形 拳/おがた けん ,1937年7月20日-2008年10月5日),本名绪形 明伸(おがた あきのぶ),日本演员。东京府东京市牛込区(现东京都新宿区市谷)出身。长子绪形干太和次子绪形直
  • 野田毅 (政治家)野田毅(1941年10月3日-)日本政治家。日本众议院议员(16期),是现今自民党众议员中当选次数最多,也是现任众议员中当选次数第二多的议员(仅次于小泽一郎)。现任日中协会会长。历任建设
  • 沥青滴漏实验沥青滴漏实验(英语:Pitch drop experiment)是一个长期实验(英语:Long-term experiment),其目的是为了测量极高黏度沥青在室温环境下的流动速度。这个实验由澳大利亚布里斯班昆士兰
  • 无事主义无事主义,或称避事主义,是对于应该解决的已发生问题,采取回避、视若无睹、袖手旁观、避免牵连、不下判断、保护自身、多一事不如少一事的不作为与消极思考。无事主义容易反映在
  • 王泰际王泰际(1599年-1675年),字内三,苏州府嘉定县人,明朝、南明政治人物。王泰际是崇祯三年(1630年)的举人,十六年(1643年)成进士,弘光年间和葛遇朝、张弘弼、吴国斗、雍鸣鸾、赵明远、许承钦
  • 吉惠 (天顺进士)吉惠(1434年-?),字泽民,南直隶镇江府丹徒县人,明朝官员。进士出身。应天府乡试第七十四名。天顺元年(1457年),参加丁丑科会试,得贡士第四十八名。殿试登进士第三甲第三十一名。曾祖父吉