Stackless Python

✍ dations ◷ 2025-06-10 09:49:58 #并发计算,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)的邮件平台。

相关

  • 高碳酸血症高碳酸血症(英语:Hypercapnia)是血液中二氧化碳(CO2)水平异常升高的情况。二氧化碳是身体代谢的气态产物,通常通过肺排出体外。 高碳酸血症通常会引发增强呼吸和接触氧气反应,例
  • 羟胆甾醇羟胆甾醇或羟胆固醇(英语:Oxycholesterol)或5,6-环氧胆固醇(英语:5,6-epoxycholesterol)是一种与动脉粥样硬化有关的氧化胆固醇
  • 假想的基本粒子假想粒子,理论物理学家提出的物理模型中假想的一些粒子,基本没有切实的实验依据,很有可能宇宙中根本就不存在这些粒子。这些粒子的提可能只是为了给某些物理现象作一种可能的解
  • 宽甸宽甸满族自治县是中国辽宁省丹东市下辖的一个自治县,在丹东市东部、鸭绿江北岸,邻接吉林省。面积6186平方千米,人口43万。邮政编码118200。自治县人民政府驻宽甸镇。下辖19个镇
  • 南陈陈(557年-589年)是中国历史上南北朝时期南朝最后一个朝代,由陈霸先代梁所建立,以建康(今南京)为首都,国号陈。陈朝名称来自陈霸先即位前被封的陈公、陈王,但陈王的封号来源又有二说,一
  • 槟城华人槟城华人是指生长于马来西亚槟城州的华人,为来自中国迁徙而来的移民后代。2017年,华人占槟城总人口的百分之四十左右,是州内第二大族群,也是马来西亚华裔比例最高的州属。槟城华
  • 小行星14174小行星14174(14174 Deborahsmall)是一颗绕太阳运转的小行星,为主小行星带小行星。该小行星于1998年11月10日发现。小行星14174的轨道半长轴为2.8540026 UA,离心率为0.181。
  • 枯鲁杜鹃枯鲁杜鹃(学名:)为杜鹃花科杜鹃属下的一个种,为中国特有种。枯鲁杜鹃最早由美国植物学家约瑟夫·洛克1929年9月在中国四川省西南部的枯鲁山区采集到标本,当时未命名。1953年,该标
  • 安娜·克伦斯基安娜·克伦斯基(英语:Anna Chlumsky,1980年12月3日-)是一位美国女演员,出生于芝加哥。在1991年演出《小鬼初恋》(),1994年再演出续集《甜蜜13岁》()。2002年从芝加哥大学(The University
  • 国际社会主义组织 (美国)国际社会主义组织(英语:International Socialist Organization)是美国的一个已不存在的托洛茨基主义组织。该组织成立于1976年。该组织原为国际社会主义倾向成员。2001年,该组织