Я помню тот момент, когда подумал «Как же медленно всё работает, что если я распараллелю вызовы?», а спустя 3 дня, взглянув на код, ничего не мог понять в жуткой каше из потоков, синхронизаторов и функций обратного вызова.
Тогда я познакомился с [asyncio][1], и всё изменилось.
[Читать дальше →][2]
[1]:
https://docs.python.org/dev/library/asyncio.html
[2]:
https://habrahabr.ru/post/337420/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut