python的直接并发http://vanillapy.readthedocs.org/

vanilla的Python项目详细描述


如果go和zeromq有了一个孩子,这个孩子长大后开始和pypy约会, 他们生了个孩子,看起来像香草味的。

概述

vanilla允许您用python构建并发软件。普通程序是 围绕独立的协同活动(greenlet)构建 彼此通过管道。管道类似于go编程中的通道。

没有回拨的疯狂,也没有猴子的修补。香草努力成为 尽可能清晰明了。

它的外观如下:

您生成协同郊游:

h=vanilla.Hub()defbeat(message):whileTrue:print(message)h.sleep(1000)h.spawn(beat,'Tick')h.spawn_later(500,beat,'Tock')# Tick / Tock / Tick / Tock

协作通过管道进行通信:

h=vanilla.Hub()sender,recver=h.pipe()h.spawn(sender.send,'Hello World')recver.recv()# 'Hello World'

pipe fu;受反应性功能模式的启发,管道可以链接:

h=vanilla.Hub()p=h.pipe().map(lambdax:x*2)h.spawn(p.send,4)p.recv()# 8

在香草里,一切都是烟斗。TCP的外观如下:

h=vanilla.Hub()server=h.tcp.listen(port=9000)# server is a Recver which dispenses new TCP connectionsconn=server.recv()# conn is a Pipe you can recv and send onmessage=conn.recv()conn.send("Echo: "+message)

安装

Vanilla与Python2.6-2.9和Pypy一起工作。

pip install vanilla

状态

Build StatusCoverage Status

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

推荐PyPI第三方库


热门话题
java广播接收器未检测到按键事件   java不为特定列更改创建修订   java采用了更实用的方法   java桌面窗格HTML呈现   java处理internet连接丢失   java在调整JFrame的大小时,如何防止JTable的列调整大小?   如何用Java中的“Scanner.hasNext”完成程序   具有模块名称的java停止IntelliJ项目工具窗口?   执行已编译的Rails-Warbler JAR文件时发生java加载错误   java Spring数据redis存储库不支持集合查询?   每个客户端的java队列请求   获取Java中的JSON嵌套数组元素   java GWT,Vaadin ConcurrentModificationException   firebase存储中的java在保存照片之前,我需要发送两次照片   JavaSpringEleaf如何在容器外使用变量