2011-12-18 4 views
1

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

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

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

+0

Что вы подразумеваете под "родными потоками в Python"? Python использует GIL, и, если я не ошибаюсь, не поддерживает встроенную многопоточность: http://wiki.python.org/moin/GlobalInterpreterLock – NoBugs

+0

@NoBugs: Вы ошибаетесь. –

ответ

1

Да, моя библиотека питон-СНТ имеет все это. Вы можете получить библиотеку здесь: https://github.com/futurecore/python-csp

Вот простой пример с каналами и Альтингом (называемых также недетерминирована выбором):

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

 Смежные вопросы

  • Нет связанных вопросов^_^