Автор оригинала: Doug Hellmann.
Цель:
Асинхронная структура ввода/вывода и параллелизма.
Модуль ASYNCIO
предоставляет инструменты для создания параллельных приложений с использованием COROTINES. В то время как модуль резьбы реализует параллелизм через прикладные потоки и многопроцессорные реализуемые параллелизм с использованием системных процессов, ASYNCIO
использует однопоточный однопроцессный подход, в котором части приложения сотрудничают, чтобы явно переключательную задачу в оптимальные времена сотрудничать. Чаще всего этот переключение контекста происходит, когда программа в противном случае будет блокировать ожидание чтения или записи данных, но ASYNCIO
также включает поддержку кода планирования для запуска в определенное время, чтобы позволить одному Coroutine ждать другого Для завершения для обработки сигналов системы, а также для распознавания других событий, которые могут быть принципиальными причинами для изменения того, на что он работает.
- Асинхронные концепции параллелизма
- Кооперативная многозадачность с COROUTINES
- Запуск COROUTINE Возвращающих значений из COROUTINES CHINGE COROUTINES Генераторы вместо Coroutines
- Запуск COROUTINE.
- Возвращая значения из Coroutines
- Сторирование Corotines.
- Генераторы вместо Coroutines
- Планирование вызовов на регулярные функции
- планирование обратного вызова “в ближайшее время” планирует обратный вызов с задержкой планирования обратного вызова на определенное время
- Планирование обратного вызова «Скоро»
- Планирование обратного вызова с задержкой
- Планирование обратного вызова на определенное время
- Добыча результатов асинхронно
- ждет будущих будущих обратных вызовов
- Жду будущего
- Будущие обратные вызовы
- Выполнение задач одновременно
- Запуск задачи Отмена задачи, создаваемые задачи, создающие задачи из Coroutines
- Начать задачу
- Отмена задания
- Создание задач из Coroutines
- Составив CITOROUTINES с контрольными структурами
- ждет нескольких Ciboutines, собрание результатов от рутины, обрабатывающие фоновые операции, поскольку они заканчивают
- Ожидание нескольких Coroutines
- Сбор результатов из Coroutines
- Обращение с фоновыми операциями, как они заканчивают
- Примитивы синхронизации
- Locks События Условия условия
- Замки
- События
- Условия
- Очередь
- Asynchronous ввод/вывод с протоколом классовых абстракций
- echo сервер echo вывод клиента
- Echo server.
- Echo Client.
- Выход
- Asynchronous I/O Использование COROUTINES и TORESS
- ECHO SERVER ECHO CLEAD CLEANCED
- Echo server.
- Echo Client.
- Выход
- Использование SSL
- Взаимодействие с сервисами доменных имен
- Просмотр адреса по имени имени поиска по адресу
- Адрес поиска по имени
- Название поиска по адресу
- Работа с подпроцессами
- с использованием абстракции протокола с подпроцессами, вызывающие подпроцессы с COROUTINES и потоками, отправляющие данные на подпрокат
- Использование абстракции протокола с подпроцессами
- Вызов подпроцессов с Coroutines и Streams
- Отправка данных на подпрокат
- Получение сигналов Unix
- Сочетание CITOROUTINES с потоками и процессами
- Threads процессы
- Потоки
- Процессы
- Отладка с асинсио
Примечание
В Python 3.5, <Код> Asyncio по-прежнему является предварительным модулем Module. API стабилизирован в Python 3.6, и большинство изменений были обратно в последующие патч-релизы Python 3.5. В результате модуль может работать немного по-разному при разных версиях Python 3.5.
Смотрите также
- Стандартная библиотечная документация для Asyncio
- pep 3156 – Поддержка асинхронной IO Перезагрузилась: “Asyncio” Модуль
-
PEP 380 – Синтаксис для делегирования в субгенератор - Pep 492 – Coroutines с async и ждать синтаксиса
- concurrent.futures – управлять пулами одновременной задачи
- Гнездо – низкоуровневая сетевая связь
- Выберите – низкоуровневые асинхронные инструменты ввода/вывода
- SocketServer – Framework для создания сетевых серверов
- asyncio: Что нового в Python 3.6 – сводка изменений в <Код> Asyncio Как API стабилизировался в Python 3.6.
- Trollius – порт тюльпана, оригинальная версия Asyncio, в Python 2.
- Новый модуль Asyncio в Python 3.4: петли событий – Статья Гастон Хиллар в доктор Добб
- Изучение Python 3’s Asyncio на примере – Сообщение блога по чате легкого
- Веб-гусеничный гусеничный с помощью Asyncio Corotines – статье в Архитектура приложений с открытым исходным кодом от A. JESE JYRYU DAVIS и GUICO VAN ROSSUM
- Играть с Asyncio – Blog Post от Nathan Hoad
- async ввод/вывод и python – пост блогов Mark McLoughlin
- Любопытный курс по Conoutines и Concularence – Учебное пособие по Pycon 2009 David Beazley
- Как Hek делает Async/ждать работу в Python 3.5? – Пост блогов brett Cannon
- Сетевое программирование Unix, объем 1: API сокетов API, 3/E W. Richard Stevens, Билл Феннер и Эндрю М. Рудф. Опубликовано Addison-Wesley Professional, 2004. ISBN-10: 0131411551
- Фонды Python Network Programminng, 3/E brandon Rhodes и Джона Герезена. Опубликовано aPress, 2014. ISBN-10: 1430258543