Использование Asyncio в Python
после оплаты (24/7)
(для всех устройств)
(в т.ч. для Apple и Android)
В Python 3.4 появилась библиотека asyncio, а в Python 3.5 появились ключевые слова async и await для удобного ее использования. Эти новые дополнения позволяют использовать так называемое асинхронное программирование. Все эти новые функции, которые я буду называть под одним названием Asyncio, были восприняты сообществом Python несколько настороженно; часть сообщества, похоже, считает их сложными и трудными для понимания. Эта точка зрения не ограничивается новичками: несколько видных участников сообщества Python выразили сомнения по поводу сложности API Asyncio в Python, а преподаватели сообщества выразили обеспокоенность по поводу того, как лучше всего преподавать Asyncio студентам. Имея несколько лет опыта работы с Python, вы уже использовали потоки, и даже если вы этого не сделали, вы, вероятно, все равно сталкивались с блокировкой. Например, если вы писали программы, используя замечательную библиотеку запросов, вы наверняка заметили, что ваша программа на некоторое время приостанавливается, пока выполняет request.get(url); это блокирующее поведение. Для разовых задач это нормально; но если вы хотите получить десять тысяч URL-адресов одновременно, использовать запросы будет сложно. Крупномасштабный параллелизм — это одна из главных причин изучать и использовать Asyncio, но другая большая привлекательность Asyncio по сравнению с вытесняющей обработкой потоков — это безопасность: с помощью Asyncio вам будет намного проще избежать ошибок, связанных с состоянием гонки. Моя цель в этой книге — дать вы получите общее представление о том, почему были введены эти новые функции и как их использовать в ваших собственных проектах. В частности, я стремлюсь предоставить следующее: Критическое сравнение asyncio и многопоточности для параллельного сетевого программирования. Понимание нового синтаксиса языка async/await. Общий обзор новых функций стандартной библиотеки asyncio в Python. Подробные расширенные тематические исследования с кодом, показывающие, как использовать несколько наиболее популярных сторонних библиотек, совместимых с Asyncio. Мы начнем с истории, иллюстрирующей сдвиг в мышлении, который должен сопровождать переход от многопоточного к асинхронному программированию. Затем мы рассмотрим изменения, внесенные в сам язык Python для обеспечения асинхронного программирования. Наконец, мы рассмотрим некоторые способы наиболее эффективного использования этих новых функций. Новые функции Asyncio не изменят радикально способ написания программ. Они предоставляют конкретные инструменты, которые имеют смысл только в конкретных ситуациях; но в правильных ситуациях asyncio исключительно полезен. В этой книге мы собираемся изучить эти ситуации и то, как лучше всего подойти к ним, используя новые функции Asyncio.
Характеристики
- Язык
- Английский