Pythonのネイティブスレッドに加えて、CSPチャネルの実装を探しています。私はいくつかのライブラリを見てきましたが、それらには台所の流し以外のすべてが含まれています。
具体的には、複数のチャネルで一連の送受信操作の最初の操作を待機し、最初に完了した操作の結果を返すか、コールバックを呼び出す機能を探しています。
コンテキストに関連するリンクは次のとおりです。
Pythonのネイティブスレッドに加えて、CSPチャネルの実装を探しています。私はいくつかのライブラリを見てきましたが、それらには台所の流し以外のすべてが含まれています。
具体的には、複数のチャネルで一連の送受信操作の最初の操作を待機し、最初に完了した操作の結果を返すか、コールバックを呼び出す機能を探しています。
コンテキストに関連するリンクは次のとおりです。
はい、私のライブラリ 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
>>>
私は内部のリファクタリングとクリーンアップの最中なので、すぐにリリースされるように注意してください。または、必要に応じてオフラインでメールを送ってください.