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如何在Android Wifi中筛选相同的SSID?   Java中重写接口中异常处理的泛型   java“无效转义序列(有效的是\b\t\n\f\r\”\“\”\)”语法错误   使用JNDI的java NameReadyBoundException   java如何在这个程序上执行算法   java为什么我的应用程序在调试时崩溃而应用程序停止?   Java:while循环未检测到中断条件,但如果块检测到   java如何快速使用jfreechart创建的折线图   java将输入放入JSTL会话变量,以便稍后在屏幕上显示   java在spring boot中加载外部JAR   java Apache NiFi无法使用ojdbc6连接到Oracle 12c。jar或ojdbc8。罐子   java解释StringToWordVector()Weka的输出   java charAt()找不到符号   使用mpjexpress的java阅读控制台输入