pyhton的轻量级协作微线程
fibers的Python项目详细描述
概述
fibers是python中用于协作多任务的轻量级原语。他们 提供运行可以暂停和恢复的代码片段的方法。不像 抢占调度的线程、协作调度的光纤, 也就是说,在给定的时间点上,只有一根光纤在运行,没有其他光纤 光纤将一直运行,直到用户明确决定。
创建光纤时,它不会自动运行。必须“交换”光纤 让它跑进去。光纤可以通过开关将控制切换到其他光纤 或抛出函数,在目标中切换控制或引发和异常 分别是纤维。
示例:
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()
avove示例将打印“1 2 3 4”,但结果由 两种纤维相互控制的协同工作。
安装
光纤可以通过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许可证,请检查许可证文件。
支持的Python版本
支持python>;=2.7和>;=3.3。其他较旧的python版本可能可以工作,但是 他们没有受到积极的考验。支持cpython和pypy。
支持的体系结构
支持x86、x86-64、ARM、MIPS64、PPC64和S390X。
贡献
如果你想贡献自己的一份力量,那就分出一个项目,做一个补丁,然后发送一个pull 请求。看看周围的代码,请,让你的看起来 一模一样。