Python: Асинхронный ввод/вывод без обработчиков событий Основная секция
Тезисы
Тезисы:
1. Принципы
- Event-loop
- Coroutines
- Как их скрестить: io-scheduler для сопрограмм
2. Поддержка coroutines в CPython
- Stackless
- Greenlets
- на основе генераторов (pure-python)
3. Реализации coroutine IO scheduler в CPython
- eventlet
- libcoev
- прочие
4. Преимущества - по сравнению с традиционными подходами
- threadpool: значительно проще справляться с синхронизацией, scheduler ядра отдыхает.
- processpool: процесс на запрос уже давно слишком расточительно
- eventloop: не надо выворачивать логику наизнанку, распихивая её по обработчикам событий
5. Результат: под что можно подложить такое
- pylons/django/wsgi-whatever
- что делать с доступом к базе
- и ко всему остальному - на примере memcached
6. Benchmarks
Ссылки по теме:
http://code.google.com/p/cogen/
http://pypi.python.org/pypi/Spawning
http://code.google.com/p/friendlyflow/
http://weightless.io/weightless
http://svn.wiretooth.com/svn/open/asycamore/trunk/asycamore.html#overview
http://code.google.com/p/fibra/