Рубрики
Без рубрики

Asyncio – асинхронный ввод / вывод, контур событий и инструменты параллелизма

Автор оригинала: 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.

Смотрите также