Python中的本地线程与CSP通道
我在寻找一种在Python中基于原生线程实现CSP通道的方法。我看到了一些相关的库,但它们的功能太多,几乎什么都有。
具体来说,我想要的是能够等待一组发送和接收操作中第一个完成的操作,并且要么把第一个完成的结果返回给我,要么调用一个回调函数。
这里有一些相关的链接,供你了解更多背景信息:
1 个回答
1
是的,我的库 python-csp 包含了你提到的所有功能。你可以在这里找到这个库:https://github.com/futurecore/python-csp
这里有一个简单的例子,展示了通道和 ALTing(也叫非确定性选择):
>>> @process
... def send_msg(chan, msg):
... chan.write(msg)
...
>>> @process
... def alt_example(chan1, chan2):
... alt = Alt(chan1, chan2)
... print alt.select()
... print alt.select()
...
>>> c1, c2 = Channel(), Channel()
>>> Par(send_msg(c1, 'yes'), send_msg(c2, 'no'), alt_example(c1, c2)).start()
yes
no
>>>
我正在对内部结构进行重构和清理,所以请留意不久后会有新版本发布。如果你有兴趣,也可以随时给我发邮件讨论。