Использовать асинхронный ввод-вывод.Для Python существует дюжина библиотек асинхронных IO сокетов. Здесь - краткий тест.Я также проверял gevent
, eventlet
, asyncore
, twisted
, pyev
, pycurl
, tornado
.
- Twsited
является стабильным, но наиболее медленным и также не легко начать с. - gevent, eventlet (libevent)
легко запустить и быстро (код выглядит как блокировка), но есть некоторые проблемы с разветвлением. - pycurl (libcurl)
быстро и легко (если вы можете делать флагимагия .. но есть пример) но только http. - pyev (libev)
вы должны понимать, что вы делаете, почти как опросить себя. - Торнадо (опрос в Python)
достаточно быстро, и я думаю, что стабильно, а также легко начать. - asyncore
очень быстро .. но неиспользуйте это .. это уродливо-уродливо.
Не используйте потоки в python, если вы действительно не знаете, что делаете.Python и потоки не очень большие друзья (если в версии 3.2 в 3.2 не должно быть нового gil).