Stackless Python

✍ dations ◷ 2025-08-23 21:59:32 #并发计算,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)的邮件平台。

相关

  • 肺孢子菌P. carinii P. jirovecii P. murina P. oryctolagi P. wakefieldiae肺孢子菌纲只有一目、一科、一属,是外囊菌亚门中一类比较原始的真菌,直到20世纪初才被发现,是一种类酵母
  • 进化博弈理论现代生物分类群体从它们的 共同祖先遗传分化的图示。进化论介绍(英语:Introduction to evolution) 演化的证据 共同起源 共同起源的证据群体遗传学 · 遗传多样性 突变 · 自
  • 大甲溪大甲溪是台湾中部重要的河川,属于中央管河川,主流上游为南湖溪,其源流中央尖溪发源于南湖大山东峰(标高3,632米),流域主要分布于台中市,并包括南投县、宜兰县之一小部分。南湖溪流
  • 1073年
  • 费氏榄仁费氏榄仁(学名:),又名卡卡杜李(Kakadu plum)、公山羊李(Billygoat plum),是使君子科诃子属的一种木本植物。原产于澳洲,广泛的分布在澳洲西北部至北领地安恒地区(Arnhem Land)东部的热带
  • 新站站 (咸镜北道)新站站(韩语:신참역)是朝鲜民主主义人民共和国咸镜北道茂山郡的一个铁路车站,属于茂山线。茂山线
  • 库恩·贝洛库恩·贝洛(匈牙利语:Kun Béla,1886年2月20日-1939年11月30日),匈牙利共产主义革命家,匈牙利苏维埃共和国的主要创建者和领导者,犹太人。库恩1886年出生于奥匈帝国统治下的特兰西瓦
  • 江世明江世明(英文名:Johnson Chiang,1964年12月6日-),国立台湾大学兽医学学士、兽医学院动物福利组硕士、管理学院公共高阶管理硕士,台北市宝宝动物医院院长。他曾在2005年、2011年两度
  • 电气通信大学短期大学部电气通信大学短期大学部(日语:電気通信大学短期大学部/でんきつうしんだいがくたんきだいがくぶ  *)是一所位于日本东京都调布市的国立短期大学。
  • 珍妮弗·温格特珍妮弗·温格特(Jennifer Winget,生于1985年5月30日)是一位印度女演员,曾出演过多部印度电视剧。 凭借主演Star Plus(英语:Star Plus)播放的爱情剧月亮的守护(英语:Saraswatichandra