Stackless Python

✍ dations ◷ 2025-07-05 01:41:49 #并发计算,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)的邮件平台。

相关

  • 药物的副作用在医学中,副作用(英语:side effect)是指药品往往有多种作用,作用于不同身体部位受体,治疗时利用其一种或一部分受体作用,其他作用或是受体产生作用即变成为副作用。虽然副作用一词
  • 八角八角(学名:Illicium verum),又称八角茴香、大料和大茴香(在某些地方,大茴香指的不是八角),是木兰藤目八角属的一种植物。其同名的干燥果实是中国菜和东南亚地区烹饪的调味料之一。树
  • 硬脂酸钠硬脂酸钠,分子式为 C 17
  • 自主武器自主武器是指能够在无人干预情况下独立搜索、识别并攻击目标的一种新式武器,包括目前某些防御武器所具有的能够拦截来袭的导弹、火箭弹和炮弹或附近的飞机的自主模式均属于自
  • 变结构控制变结构控制(Variable structure control、VSC)是一种不连续的非线性控制,会用高频切换的方式来调整非线性系统的动态。其状态反馈的控制律不是时间的连续函数,会在几个连续函数
  • 纳吉·阿布·诺瓦纳吉·阿布·诺瓦(Naji Abu Nowar,(阿拉伯语:ناجي أبو نوار‎)是一名出生于英国牛津的约旦电影导演、编剧和监制,主要作品有 (2009)、 (2012) 和获得奥斯卡最佳外语
  • 犹大·莱昂·阿布拉瓦内尔犹大·莱昂·阿布拉瓦内尔(Judah Leon Abravanel,1460年-1521年),又名莱昂·赫布里阿(León Hebreo),文艺复兴时期欧洲犹太学者。为伊萨克·阿布拉瓦内尔之子。他是一位葡萄牙哲学家
  • 瑞尼尔樱桃瑞尼尔樱桃(英语:Rainier cherry,rainier发音:/reɪˈnɪər/ - )是樱桃的一个品种,1952年时由华盛顿州立大学科学家哈洛德·福格尔(Harold Fogle)培育。本品种由Bing和Van两种樱桃
  • 三浦绫子三浦绫子(日语:三浦 綾子/みうら あやこ ,1922年4月25日-1999年10月12日)是生于北海道旭川市的女性作家。她与同时代的女性作家曾野绫子一起被称为“W绫子”。结婚前的旧姓为堀田
  • 洪锡天洪锡天(韩语:홍석천,1971年2月3日-)是韩国的艺人、模特儿及演员。 他在2000年9月公开出柜。餐饮副业发展相当成功,目前是拥有11家餐厅的老板。2018年,他透露他是NCT成员泰容的远房