Каналы CSP с собственными потоками в Python - PullRequest
1 голос
/ 18 декабря 2011

Я ищу реализацию каналов CSP поверх собственных потоков в Python.Я видел несколько библиотек, но они включают в себя все, кроме кухонной раковины.

В частности, я ищу возможность дождаться первого из набора операций отправки и получения по нескольким каналам и либополучить результаты первой выполненной операции или вызвать обратный вызов.

Вот несколько связанных ссылок для контекста:

1 Ответ

1 голос
/ 08 января 2012

Да, в моей библиотеке 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
>>>

Я нахожусь в процессе рефакторингавнутренности и уборка вещей, так что следите за выпуском довольно скоро или не стесняйтесь, напишите мне в автономном режиме об этом, если хотите.

...