pyhton的轻量级协作微线程

fibers的Python项目详细描述


https://badge.fury.io/py/fibers.png

概述

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”,但结果由 两种纤维相互控制的协同工作。

CI状态

https://secure.travis-ci.org/saghul/python-fibers.png?branch=masterhttps://ci.appveyor.com/api/projects/status/9f4h0wk797i4vc0k?svg=true

安装

光纤可以通过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

作者

萨乌尔伊巴拉科雷特(Sa_l Ibarra Corretgélt;saghul@gmail.com>;

如果没有以前的工作 greenlet和stacklet( PyPy)项目。

许可证

除非文件上另有说明,否则fibers使用mit许可证,请检查许可证文件。

支持的Python版本

支持python>;=2.7和>;=3.3。其他较旧的python版本可能可以工作,但是 他们没有受到积极的考验。支持cpython和pypy。

支持的体系结构

支持x86、x86-64、ARM、MIPS64、PPC64和S390X。

贡献

如果你想贡献自己的一份力量,那就分出一个项目,做一个补丁,然后发送一个pull 请求。看看周围的代码,请,让你的看起来 一模一样。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java NIO选择器最多只能选择50个SelectionKeys?   java阻止ImageButton创建新活动   为什么Java方法“Arrays.copyOf”处理中的整数数组与处理对象数组时的行为不同   java将安卓 1.6日历字段提取到vcal   将字符串转换为双精度后的java问题   java使用Webflux,是否可以使用AOP获取用于日志记录的ServerHttpRequest   java与jTextArea的基本区别是什么。setText()和jTextArea。append()方法?   java程序执行时间|将值保存到文件或数据结构?   java如何将表示字符的整数转换为字符串?   Java LWJGL新的渲染问题windows   java GUI提供异常   java创建第二个对象使类的函数不再工作   如何在java中将000验证为3位数字?   java bigO算法的时间复杂度,可以在不重复的情况下找到最长的子串   在30像素内点击按钮后,java在两个图像之间转换   java eclipse maven nexus不可解父pom   当存在其他SecurityConstraint时,java TransportGuary机密将被忽略   重新连接后激发的java Red5客户端流断开事件   javafx聊天应用程序中连接客户端的java问题