2011-12-18 18 views
1

我正在尋找在Python中的本機線程頂部的CSP通道的實現。我見過幾個圖書館,但它們包括除廚房水槽以外的所有東西。在Python中使用本機線程的CSP通道

具體來說,我正在尋找能夠等待多個通道上的一組發送和接收操作中的第一個操作,並且可以將第一個完成操作的結果返回給我,或者調用一個回調。

這裏有上下文的幾個相關鏈接:

+0

「Python中的本地線程」是什麼意思? Python使用GIL,除非我錯了,不支持本地多線程:http://wiki.python.org/moin/GlobalInterpreterLock – NoBugs 2011-12-27 22:40:24

+0

@NoBugs:你錯了。 – 2011-12-28 06:29:42

回答

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 
>>> 

我在重構的內部和清洗東西的中間是,所以請儘快留意發佈,如果您願意的話,請隨時通過電子郵件向我發送電子郵件。

+0

不錯,看起來比pycsp好。 – 2012-01-08 00:47:58

+1

謝謝:)希望在重構之後的幾周內在PyPI上「正確」釋放。 – snim2 2012-01-08 01:27:44