fbpx
维基百科

Stackless Python

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

Stackless Python
原作者Christian Tismer
開發者Anselm Kruis
首次发布1998年,​24年前​(1998
目前版本
  • 3.8.1-slp (2021年8月12日)[1]
源代码库
  • github.com/stackless-dev/stackless
编程语言C, Python
操作系统Linux, Windows
类型解释器
许可协议Python软件基金会许可证
网站github.com/stackless-dev/stackless/wiki 

设计

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

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

使用

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

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

引用

  1. ^ Release v3.8.1-slp. 2021年8月12日 [2022年3月8日]. 
  2. ^ 存档副本. [2020-09-30]. (原始内容于2020-08-29). 
  3. ^ About Stackless. [26 August 2016]. (原始内容于2020-06-23). a round robin scheduler is built in. It can be used to schedule tasklets either cooperatively or preemptively. 
  4. ^ Application-level Stackless features — PyPy documentation. pypy.readthedocs.org. [2020-09-30]. (原始内容于2016-04-13). 
  5. ^ greenlet: Lightweight concurrent programming — greenlet 0.4.0 documentation. greenlet.readthedocs.org. [2020-09-30]. (原始内容于2016-04-16). 
  6. ^ What is gevent? — gevent 1.3.0.dev0 documentation. www.gevent.org. [2020-12-09]. (原始内容于2020-09-16). 

参閱

外部链接

stackless, python, 或称简称stackless, 是一个python编程语言解释器, 这么称呼的原因是它避免了依赖c调用栈为自己的堆栈, 在实际中, 使用了c堆栈, 但是这个堆栈在函数调用之间是被清除的, 的最突出特征是微线程, 英语, microthread, 它避免了与操作系统线程有关的大量开销, 在python特征之外, stackless还增加了协程, 通信通道和任务序列化, 原作者christian, tismer開發者anselm, kruis首次发布1998年, 24年前, 1998. Stackless Python或称简称Stackless 是一个Python编程语言解释器 这么称呼的原因是它避免了依赖C调用栈为自己的堆栈 在实际中 Stackless Python使用了C堆栈 但是这个堆栈在函数调用之间是被清除的 2 Stackless Python的最突出特征是微线程 英语 Microthread 它避免了与操作系统线程有关的大量开销 在Python特征之外 Stackless还增加了协程 通信通道和任务序列化 Stackless Python原作者Christian Tismer開發者Anselm Kruis首次发布1998年 24年前 1998 目前版本3 8 1 slp 2021年8月12日 1 源代码库github wbr com wbr stackless dev wbr stackless编程语言C Python操作系统Linux Windows类型解释器许可协议Python软件基金会许可证网站github wbr com stackless dev stackless wiki 目录 1 设计 2 使用 3 引用 4 参閱 5 外部链接设计 编辑对于Stackless Python 一个运行的程序被分解成微线程 由语言解释器自身而非操作系统内核管理 上下文切换和任务调度纯粹在解释器内完成 因而可以被视作是一种形式的绿色线程 微线程管理在同一个CPU核心上一个程序的不同子任务的执行 Stackless Python不移除Python的全局解释器锁 也不使用多线程或多进程 所以它只允许在一个共享CPU核心上的协作式多任务而非并行 最初不能获得而现在有了某种形式的抢占 3 由于相当数量的源代码变更 Stackless Python不能在现存的Python安装上作为一个扩展或库来安装 它自身是完整的Python发行 大多数的Stackless Python的特征也在PyPy中实现了 它是自我寄宿 英语 Self hosting compilers 的Python解释器和JIT编译器 4 使用 编辑尽管整个Stackless Python是一个独立发行 它的上下文切换功能已经成功的打包为叫做greenlet的CPython扩展 5 它被用在很多库 比如gevent 6 用来提供CPython的绿色线程解决方案 Python现在已经接受了对绿色线程的原生解决方案 async await Stackless Python广泛的使用在大规模多玩家在线游戏Eve Online 英语 Eve Online 的实现和IronPort 英语 IronPort 的邮件平台 引用 编辑 Release v3 8 1 slp 2021年8月12日 2022年3月8日 存档副本 2020 09 30 原始内容存档于2020 08 29 About Stackless 26 August 2016 原始内容存档于2020 06 23 a round robin scheduler is built in It can be used to schedule tasklets either cooperatively or preemptively Application level Stackless features PyPy documentation pypy readthedocs org 2020 09 30 原始内容存档于2016 04 13 greenlet Lightweight concurrent programming greenlet 0 4 0 documentation greenlet readthedocs org 2020 09 30 原始内容存档于2016 04 16 What is gevent gevent 1 3 0 dev0 documentation www gevent org 2020 12 09 原始内容存档于2020 09 16 参閱 编辑 自由软件主题 Erlang Limbo 程式语言 Go SCOOP 软件 英语 SCOOP software 外部链接 编辑Stackless Python Documentation for 3 7 slp 页面存档备份 存于互联网档案馆 3 6 slp 页面存档备份 存于互联网档案馆 3 5 slp 页面存档备份 存于互联网档案馆 3 4 slp 页面存档备份 存于互联网档案馆 2 7 slp 页面存档备份 存于互联网档案馆 GitHub上的stackless頁面 Multithreaded Game Scripting with Stackless Python 页面存档备份 存于互联网档案馆 by Harry Kalogirou Continuations and Stackless Python by Christian Tismer 取自 https zh wikipedia org w index php title Stackless Python amp oldid 75041217, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。