2011-12-18 8 views
1

Pythonのネイティブスレッドの上にCSPチャネルの実装を探しています。私はいくつかの図書館を見てきましたが、キッチンシンク以外はすべてが含まれています。Pythonでネイティブスレッドを使用するCSPチャネル

具体的には、複数のチャネルで送受信操作のセットの最初を待機し、最初に完了した操作の結果が返されたか、コールバックが呼び出されたかのいずれかを探しています。ここで

は、コンテキストのためのいくつかの関連リンクです:

+0

"Pythonのネイティブスレッド"とはどういう意味ですか? PythonはGILを使用しています。私が間違っていない限りネイティブマルチスレッドをサポートしていません:http://wiki.python.org/moin/GlobalInterpreterLock – NoBugs

+0

@NoBugs:あなたは間違いです。 –

答えて

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よりもよく見えます。 –

+1

thanks :)このリファクタリングの後、数週間後にPyPI上の「適切な」リリースを望んでいます。 – snim2

関連する問題