Python的轻量级协作微线程
项目描述
概述
Fibers是Python中进行协作多任务的轻量级原语。它们提供了运行可以暂停和恢复的代码片段的手段。与抢占式调度的线程不同,fibers是协作调度的,也就是说,在任何给定时间点,只有一个fibers会运行,并且没有其他fibers会运行,直到用户明确决定。
创建fibers时,它们不会自动运行。必须通过将fibers“切换”到它才能运行。fibers可以通过使用switch或throw函数将控制权切换到其他fibers,这两个函数分别切换控制权或在目标fibers中引发异常。
示例
import fibers def func1(): print "1" f2.switch() print "3" f2.switch() def func2(): print "2" f1.switch() print "4" f1 = fibers.Fiber(target=func1) f2 = fibers.Fiber(target=func2) f1.switch()
上面的示例将打印“1 2 3 4”,但是结果是通过对2个fibers的协作工作,它们互相切换控制权而得到的。
CI状态
文档
安装
fibers可以通过以下方式通过pip安装
pip install fibers
构建
获取源代码
git clone https://github.com/saghul/python-fibers
Linux
./build_inplace
Mac OSX
(XCode needs to be installed) export ARCHFLAGS="-arch x86_64" ./build_inplace
Microsoft Windows
python setup.py build_ext --inplace
运行测试套件
可以使用nose运行测试套件
nosetests -v
许可证
除非文件中另有说明,否则fibers使用MIT许可证,请检查LICENSE文件。
支持的Python版本
支持Python >= 2.7和>= 3.3。其他较老的Python版本可能也可以工作,但它们未经过积极测试。支持CPython和PyPy。
支持的架构
支持x86、x86-64、ARM、MIPS64、PPC64和s390x架构。
贡献
如果您想做出贡献,请fork项目,制作补丁并提交pull request。请查看周围的代码,并确保您的代码风格与之相似。
项目详情
下载文件
下载适用于您平台文件的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。
源码分发
fibers-1.1.0.tar.gz (36.1 kB 查看哈希值)
构建版本
fibers-1.1.0-cp36-cp36m-win_amd64.whl (16.3 kB 查看哈希值)
fibers-1.1.0-cp36-cp36m-win32.whl (15.0 kB 查看哈希值)
fibers-1.1.0-cp35-cp35m-win_amd64.whl (16.3 kB 查看哈希值)
fibers-1.1.0-cp35-cp35m-win32.whl (15.0 kB 查看哈希值)
fibers-1.1.0-cp34-cp34m-win_amd64.whl (14.2 kB 查看哈希值)
fibers-1.1.0-cp34-cp34m-win32.whl (13.9 kB 查看哈希值)
fibers-1.1.0-cp33-cp33m-win_amd64.whl (14.2 kB 查看哈希值)
fibers-1.1.0-cp33-cp33m-win32.whl (13.9 kB 查看哈希值)
fibers-1.1.0-cp27-cp27m-win_amd64.whl (14.3 kB 查看哈希值)
fibers-1.1.0-cp27-cp27m-win32.whl (14.0 kB 查看哈希值)
关闭
fibers-1.1.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 624de9b23547838459765fa2386c31afea414fca34558895e2f867eeacbb4fce |
|
MD5 | 93fee8da8a53bdaa107bb098e576c7f6 |
|
BLAKE2b-256 | 91127b683d9589d3052d3d5366529e60db58f797b4ffd4b1146b86488f736ab0 |
关闭
fibers-1.1.0-cp36-cp36m-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5416584f3d06144ba25fc2304c7643ce4812b9a4b366fa9271a093d6293e96ee |
|
MD5 | e91ecc187cb205ea0405c97f8b248f4f |
|
BLAKE2b-256 | 183e2e8ed0e30860fba8dfd280d17ea2a977085b705e43224d7c45ea98e5b906 |
关闭
fibers-1.1.0-cp36-cp36m-win32.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 89c099bcc523d1227392f9e8d72fee958d19dbf2003d089af4a7d2b8b03399de |
|
MD5 | 788b36313e1cf8094fbe000ebc9989d9 |
|
BLAKE2b-256 | c848629c16b9af1e9670fa65b16c1adc36f1310106fc4ed1f6e7dadae0408387 |
关闭
fibers-1.1.0-cp35-cp35m-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 443ee28e8284c1002a76480dfce301be710de1e30df1f6d4a6558ad71d1bf6d5 |
|
MD5 | 2a47324939eb9bc588149a877c56d208 |
|
BLAKE2b-256 | 440ef0bc709341dc3c3b005aa6087397bbbe9e87dcd3d981a9390d4d1ea309de |
关闭
fibers-1.1.0-cp35-cp35m-win32.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 40f7fac249a7701f1e775db025583b773b401bdb48fa4e1c234497935b336bde |
|
MD5 | a1431677ade2b879e21fab145e8a4b29 |
|
BLAKE2b-256 | bb462958f5a535f29fa9ac53a91663e71e548d46db35a8b1a1466c1eb5899b15 |
关闭
fibers-1.1.0-cp34-cp34m-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c105d8665a48a2ccbacd2217bbaa8f113225ebba72bec89c999d33c8844cee03 |
|
MD5 | 4055ed869b213201f3c6d2238534e23f |
|
BLAKE2b-256 | 5c91fa1adbd68084b727dcd514289ac5f4de90cd191258202afa64d0c77acb2b |
关闭
fibers-1.1.0-cp34-cp34m-win32.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 65b5514a2a1905e7b3497abc26ba5bb11bd324d304174d90f7cfefd348373f20 |
|
MD5 | 9a2fb572fa3b787b42a56e69fbda3286 |
|
BLAKE2b-256 | 4d9f37e59266ff7d364f39255e349b457c360d43c4db719f5909fcfd15306a1c |
关闭
fibers-1.1.0-cp33-cp33m-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1fdb8be79578936c48c7b4c98229ee75b0048a4a4475438e2179ba1165bd22e4 |
|
MD5 | f325defc09b20612ecb7de12d08dc49e |
|
BLAKE2b-256 | 4fec4030ba89ca323ae411e82b5b7738b0a68730404246bdcb3a811298aba99c |
关闭
fibers-1.1.0-cp33-cp33m-win32.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 211ad4888ba7a3ab6ebfedd3b2739c217f437f8c391470feaa6f84caf3843285 |
|
MD5 | 740ccfa3ced0cc1f59723f64c19a3035 |
|
BLAKE2b-256 | a5f1261f3f4844080913e0b20419fd249d99501682c38ab33744f585eed82ada |
关闭
fibers-1.1.0-cp27-cp27m-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 83cabfee73774dd4fa7ecd7ed22a7709674a13800bb6a95ca2d61744f259bdee |
|
MD5 | f8655a85e1f8a67833f62174b9b09097 |
|
BLAKE2b-256 | d2a19849a0d79c3463ed19893fd726fa569b24ac619d0a5bd75c060e8da4434a |