跳转到主要内容

轻量级进程内并发编程

项目描述

Greenlets是轻量级的协程,用于进程内并发编程。

“greenlet”包是Stackless的一个分支,Stackless是一个支持称为“tasklets”的微线程的CPython版本。Tasklets以伪并发方式运行(通常在单个或少数操作系统级线程中),并通过“通道”上的数据交换进行同步。

另一方面,“greenlet”是一个更原始的微线程概念,没有隐式调度;换句话说,就是协程。当你想精确控制代码运行时机时,这很有用。你可以在greenlet的基础上构建自定义的调度微线程;然而,似乎greenlet本身作为一个创建高级控制流结构的方式就很有用。例如,我们可以重新创建生成器;与Python自身的生成器不同的是,我们的生成器可以调用嵌套函数,嵌套函数也可以产生值。(另外,你不需要“yield”关键字。参见test_generator.py中的示例)。

Greenlets作为C扩展模块提供,用于常规未修改的解释器。

谁在使用Greenlet?

有几个库使用Greenlet作为Python内置协程支持的更灵活替代品。

获取Greenlet

获取Greenlet最简单的方法是使用pip安装它

pip install greenlet

源代码归档和二进制分发可以在Python包索引https://pypi.ac.cn/project/greenlet上找到

源代码仓库托管在github上:https://github.com/python-greenlet/greenlet

文档可在readthedocs.org上找到:https://greenlet.readthedocs.io

项目详情


下载文件

下载适用于您平台的应用程序文件。如果您不确定该选择哪个,请了解有关安装包的更多信息。

源代码分发

greenlet-3.1.1.tar.gz (186.0 kB 查看哈希值)

上传时间 源代码

构建分发版

greenlet-3.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl (1.1 MB 查看哈希值)

上传时间 CPython 3.13t musllinux: musl 1.1+ x86-64

greenlet-3.1.1-cp313-cp313t-musllinux_1_1_aarch64.whl (1.1 MB 查看哈希值)

上传时间 CPython 3.13t musllinux: musl 1.1+ ARM64

greenlet-3.1.1-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (602.8 kB 查看哈希值)

上传时间 CPython 3.13t manylinux: glibc 2.24+ x86-64 manylinux: glibc 2.28+ x86-64

greenlet-3.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (642.5 kB 查看哈希值)

上传时间 CPython 3.13t manylinux: glibc 2.17+ x86-64

greenlet-3.1.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl (646.5 kB 查看哈希值)

上传时间 CPython 3.13t manylinux: glibc 2.17+ s390x

greenlet-3.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (649.3 kB 查看哈希值)

上传于 CPython 3.13t manylinux: glibc 2.17+ ppc64le

greenlet-3.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (643.7 kB 查看哈希值)

上传于 CPython 3.13t manylinux: glibc 2.17+ ARM64

greenlet-3.1.1-cp313-cp313-win_amd64.whl (299.5 kB 查看哈希值)

上传于 CPython 3.13 Windows x86-64

greenlet-3.1.1-cp313-cp313-musllinux_1_1_x86_64.whl (1.2 MB 查看哈希值)

上传于 CPython 3.13 musllinux: musl 1.1+ x86-64

greenlet-3.1.1-cp313-cp313-musllinux_1_1_aarch64.whl (1.1 MB 查看哈希值)

上传于 CPython 3.13 musllinux: musl 1.1+ ARM64

greenlet-3.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (615.6 kB 查看哈希值)

上传于 CPython 3.13 manylinux: glibc 2.24+ x86-64 manylinux: glibc 2.28+ x86-64

greenlet-3.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (660.3 kB 查看哈希值)

上传于 CPython 3.13 manylinux: glibc 2.17+ x86-64

greenlet-3.1.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl (657.7 kB 查看哈希值)

上传于 CPython 3.13 manylinux: glibc 2.17+ s390x

greenlet-3.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (663.4 kB 查看哈希值)

上传于 CPython 3.13 manylinux: glibc 2.17+ ppc64le

greenlet-3.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (649.2 kB 查看哈希值)

上传于 CPython 3.13 manylinux: glibc 2.17+ ARM64

greenlet-3.1.1-cp313-cp313-macosx_11_0_universal2.whl (273.0 kB 查看哈希值)

上传于 CPython 3.13 macOS 11.0+ universal2 (ARM64, x86-64)

greenlet-3.1.1-cp312-cp312-win_amd64.whl (299.7 kB 查看哈希值)

上传于 CPython 3.12 Windows x86-64

greenlet-3.1.1-cp312-cp312-musllinux_1_1_x86_64.whl (1.2 MB 查看哈希值)

上传于 CPython 3.12 musllinux: musl 1.1+ x86-64

greenlet-3.1.1-cp312-cp312-musllinux_1_1_aarch64.whl (1.1 MB 查看哈希值)

上传于 CPython 3.12 musllinux: musl 1.1+ ARM64

greenlet-3.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (613.1 kB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.24+ x86-64 manylinux: glibc 2.28+ x86-64

greenlet-3.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (660.1 kB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.17+ x86-64

greenlet-3.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (658.0 kB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.17+ s390x

greenlet-3.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (663.4 kB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.17+ ppc64le

greenlet-3.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (649.1 kB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.17+ ARM64

greenlet-3.1.1-cp312-cp312-macosx_11_0_universal2.whl (274.3 kB 查看哈希值)

上传于 CPython 3.12 macOS 11.0+ universal2 (ARM64, x86-64)

greenlet-3.1.1-cp311-cp311-win_amd64.whl (298.9 kB 查看哈希)

上传于 CPython 3.11 Windows x86-64

greenlet-3.1.1-cp311-cp311-musllinux_1_1_x86_64.whl (1.2 MB 查看哈希)

上传于 CPython 3.11 musllinux: musl 1.1+ x86-64

greenlet-3.1.1-cp311-cp311-musllinux_1_1_aarch64.whl (1.1 MB 查看哈希)

上传于 CPython 3.11 musllinux: musl 1.1+ ARM64

greenlet-3.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (602.4 kB 查看哈希)

上传于 CPython 3.11 manylinux: glibc 2.24+ x86-64 manylinux: glibc 2.28+ x86-64

greenlet-3.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (647.8 kB 查看哈希)

上传于 CPython 3.11 manylinux: glibc 2.17+ x86-64

greenlet-3.1.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (648.5 kB 查看哈希)

上传于 CPython 3.11 manylinux: glibc 2.17+ s390x

greenlet-3.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (652.8 kB 查看哈希)

上传于 CPython 3.11 manylinux: glibc 2.17+ ppc64le

greenlet-3.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (640.4 kB 查看哈希)

上传于 CPython 3.11 manylinux: glibc 2.17+ ARM64

greenlet-3.1.1-cp311-cp311-macosx_11_0_universal2.whl (272.5 kB 查看哈希)

上传于 CPython 3.11 macOS 11.0+ universal2 (ARM64, x86-64)

greenlet-3.1.1-cp310-cp310-win_amd64.whl (298.4 kB 查看哈希)

上传于 CPython 3.10 Windows x86-64

greenlet-3.1.1-cp310-cp310-musllinux_1_1_x86_64.whl (1.1 MB 查看哈希)

上传于 CPython 3.10 musllinux: musl 1.1+ x86-64

greenlet-3.1.1-cp310-cp310-musllinux_1_1_aarch64.whl (1.1 MB 查看哈希值)

上传于 CPython 3.10 musllinux: musl 1.1+ ARM64

greenlet-3.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (599.5 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.24+ x86-64 manylinux: glibc 2.28+ x86-64

greenlet-3.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (643.3 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64

greenlet-3.1.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (644.4 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ s390x

greenlet-3.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (648.8 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ ppc64le

greenlet-3.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (637.2 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ ARM64

greenlet-3.1.1-cp310-cp310-macosx_11_0_universal2.whl (271.2 kB 查看哈希值)

上传于 CPython 3.10 macOS 11.0+ universal2 (ARM64, x86-64)

greenlet-3.1.1-cp39-cp39-win_amd64.whl (298.3 kB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

greenlet-3.1.1-cp39-cp39-win32.whl (281.1 kB 查看哈希值)

上传于 CPython 3.9 Windows x86

greenlet-3.1.1-cp39-cp39-musllinux_1_1_x86_64.whl (1.1 MB 查看哈希值)

上传于 CPython 3.9 musllinux: musl 1.1+ x86-64

greenlet-3.1.1-cp39-cp39-musllinux_1_1_aarch64.whl (1.1 MB 查看哈希值)

上传时间 CPython 3.9 musllinux: musl 1.1+ ARM64

greenlet-3.1.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (597.4 kB 查看哈希值)

上传时间 CPython 3.9 manylinux: glibc 2.24+ x86-64 manylinux: glibc 2.28+ x86-64

greenlet-3.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (641.3 kB 查看哈希值)

上传时间 CPython 3.9 manylinux: glibc 2.17+ x86-64

greenlet-3.1.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (642.0 kB 查看哈希值)

上传时间 CPython 3.9 manylinux: glibc 2.17+ s390x

greenlet-3.1.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (646.9 kB 查看哈希值)

上传时间 CPython 3.9 manylinux: glibc 2.17+ ppc64le

greenlet-3.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (634.8 kB 查看哈希值)

上传时间 CPython 3.9 manylinux: glibc 2.17+ ARM64

greenlet-3.1.1-cp39-cp39-macosx_11_0_universal2.whl (270.0 kB 查看哈希值)

上传时间 CPython 3.9 macOS 11.0+ universal2 (ARM64, x86-64)

greenlet-3.1.1-cp38-cp38-win_amd64.whl (298.3 kB 查看哈希值)

上传时间 CPython 3.8 Windows x86-64

greenlet-3.1.1-cp38-cp38-win32.whl (281.1 kB 查看哈希值)

上传时间 CPython 3.8 Windows x86

greenlet-3.1.1-cp38-cp38-musllinux_1_1_x86_64.whl (1.2 MB 查看哈希值)

上传时间 CPython 3.8 musllinux: musl 1.1+ x86-64

greenlet-3.1.1-cp38-cp38-musllinux_1_1_aarch64.whl (1.1 MB 查看哈希值)

上传于 CPython 3.8 musllinux: musl 1.1+ ARM64

greenlet-3.1.1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (606.0 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.24+ x86-64 manylinux: glibc 2.28+ x86-64

greenlet-3.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (650.7 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ x86-64

greenlet-3.1.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (651.4 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ s390x

greenlet-3.1.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (655.5 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ ppc64le

greenlet-3.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (642.9 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ ARM64

greenlet-3.1.1-cp38-cp38-macosx_11_0_universal2.whl (271.0 kB 查看哈希值)

上传于 CPython 3.8 macOS 11.0+ universal2 (ARM64, x86-64)

greenlet-3.1.1-cp37-cp37m-win_amd64.whl (298.9 kB 查看哈希值)

上传于 CPython 3.7m Windows x86-64

greenlet-3.1.1-cp37-cp37m-win32.whl (281.6 kB 查看哈希值)

上传于 CPython 3.7m Windows x86

greenlet-3.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl (1.1 MB 查看哈希值)

上传于 CPython 3.7m musllinux: musl 1.1+ x86-64

greenlet-3.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl (1.1 MB 查看哈希值)

上传于 CPython 3.7m musllinux: musl 1.1+ ARM64

greenlet-3.1.1-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (563.0 kB 查看哈希值)

上传时间 CPython 3.7m manylinux: glibc 2.24+ x86_64 manylinux: glibc 2.28+ x86_64

greenlet-3.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (602.7 kB 查看哈希值)

上传时间 CPython 3.7m manylinux: glibc 2.17+ x86_64

greenlet-3.1.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl (602.9 kB 查看哈希值)

上传时间 CPython 3.7m manylinux: glibc 2.17+ s390x

greenlet-3.1.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (610.7 kB 查看哈希值)

上传时间 CPython 3.7m manylinux: glibc 2.17+ ppc64le

greenlet-3.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (594.4 kB 查看哈希值)

上传时间 CPython 3.7m manylinux: glibc 2.17+ ARM64

由以下支持