跳转到主要内容

Python的直观并发 http://vanillapy.readthedocs.org/

项目描述

如果Go和ZeroMQ有一个孩子,这个孩子长大后开始与PyPy约会,然后他们有一个孩子,这可能就是Vanilla的样子。

概述

Vanilla允许您在Python中构建并发软件。Vanilla程序围绕独立的协程(greenlets)构建,通过管道相互通信。管道类似于Go编程中的通道。

没有回调疯狂和猴子补丁。Vanilla力求尽可能明确和直观。

文档

Read the Docs

它看起来是这样的

启动协程

h = vanilla.Hub()

def beat(message):
    while True:
        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'

管道功能;受反应式函数模式的启发,管道可以串联

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

在Vanilla中,一切都是管道。这是TCP的样子

h = vanilla.Hub()

server = h.tcp.listen(port=9000)
# server is a Recver which dispenses new TCP connections

conn = server.recv()
# conn is a Pipe you can recv and send on

message = conn.recv()
conn.send("Echo: " + message)

安装

Vanilla与Python 2.6 - 2.9和PyPy兼容。

pip install vanilla

状态

Build StatusCoverage Status

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

vanilla-0.1.16.tar.gz (22.7 kB 查看哈希)

上传于 源代码

由以下机构支持