Библиотека knigago >> Компьютеры: Языки и системы программирования >> Python >> Asyncio и конкурентное программирование на Python

Мэттью Фаулер - Asyncio и конкурентное программирование на Python

Asyncio и конкурентное программирование на Python
Книга - Asyncio и конкурентное программирование на Python.  Мэттью Фаулер  - прочитать полностью в библиотеке КнигаГо
Название:
Asyncio и конкурентное программирование на Python
Мэттью Фаулер

Жанр:

Python

Изадано в серии:

неизвестно

Издательство:

ДМК Пресс

Год издания:

ISBN:

978-5-93700-166-5

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Asyncio и конкурентное программирование на Python"

Из данной книги вы узнаете, как работает библиотека asyncio, как написать первое реальное приложение и как использовать функции веб-API для для повышения производительности, пропускной способности и отзывчивости приложений на языке Python. Рассматривается широкий круг вопросов: от модели однопоточной конкурентности до многопроцессорной обработки. Издание будет полезно не только Python-разработчикам, но и всем программистам, которые хотят лучше понимать общие проблемы конкурентности.

Читаем онлайн "Asyncio и конкурентное программирование на Python". [Страница - 2]

44

Основы asyncio........................................................................................ 45
2.1
2.2
2.3

Знакомство с сопрограммами................................................................ 46
Создание сопрограмм с по­мощью ключевого слова async................. 46
Приостановка выполнения с по­мощью ключевого слова await......... 48
Моделирование длительных операций с по­мощью sleep.................... 49
Конкурентное выполнение с по­мощью задач....................................... 52
2.1.1
2.1.2

Содержание

8

2.4

2.3.1
2.3.2

Основы создания задач................................................................... 52
Конкурентное выполнение нескольких задач. ................................. 53

Снятие задач и задание тайм-аутов...................................................... 56
Снятие задач................................................................................. 56
Задание тайм-аута и снятие с по­мощью wait_for.......................... 57
2.5
Задачи, сопрограммы, будущие объекты и объекты,
допускающие ожидание......................................................................... 59
2.5.1
Введение в будущие объекты.......................................................... 59
2.5.2
Связь между будущими объектами, задачами и сопрограммами..... 61
2.6
Измерение времени выполнения сопрограммы с по­мощью
декораторов............................................................................................. 62
2.7
Ловушки сопрограмм и задач................................................................. 65
2.7.1
Выполнение счетного кода............................................................. 65
2.7.2
Выполнение блокирующих API........................................................ 67
2.8
Ручное управление циклом событий..................................................... 68
2.8.1
Создание цикла событий вручную.................................................. 69
2.8.2
Получение доступа к циклу событий.............................................. 69
2.9
Отладочный режим................................................................................. 70
2.9.1
Использование asyncio.run.............................................................. 70
2.9.2
Использование аргументов командной строки. ............................. 71
2.9.3
Использование переменных окружения........................................... 71
Резюме................................................................................................................. 72
2.4.1
2.4.2

3

4

Первое приложение asyncio.......................................................... 74
3.1
3.2

Работа с блокирующими сокетами........................................................ 75
Подключение к серверу с по­мощью telnet............................................ 78
3.2.1
Чтение данных из сокета и запись данных в сокет......................... 79
3.2.2
Разрешение нескольких подключений и опасности блокирования.... 80
3.3
Работа с неблокирующими сокетами.................................................... 82
3.4
Использование модуля selectors для построения цикла событий
сокетов..................................................................................................... 86
3.5
Эхо-сервер средствами цикла событий asyncio.................................... 89
3.5.1
Сопрограммы цикла событий для сокетов..................................... 89
3.5.2
Проектирование асинхронного эхо-сервера.................................... 90
3.5.3
Обработка ошибок в задачах......................................................... 92
3.6
Корректная остановка............................................................................. 94
3.6.1
Прослушивание сигналов................................................................ 95
3.6.2
Ожидание завершения начатых задач. .......................................... 96
Резюме................................................................................................................. 99

Конкурентные веб-запросы........................................................101
4.1
4.2
4.3
4.4
4.5

Введение в aiohttp..................................................................................102
Асинхронные контекстные менеджеры...............................................103
4.2.1
Отправка веб-запроса с по­мощью aiohttp.....................................105
4.2.2
Задание тайм-аутов в aiohttp......................................................107
И снова о конкурентном выполнении задач........................................108
Конкурентное выполнение запросов с помощью gather.....................111
4.4.1
Обработка исключений при использовании gather.........................113
Обработка результатов по мере поступления......................................115
4.5.1
Тайм-ауты в сочетании с as_completed.........................................117

Содержание

9

4.6

Точный контроль с по­мощью wait........................................................119
4.6.1
Ожидание завершения всех задач..................................................119
4.6.2
Наблюдение за исключениями.......................................................122
4.6.3
Обработка результатов по мере завершения...............................123
4.6.4
Обработка тайм-аутов...............................................................126
4.6.5
Зачем оборачивать сопрограммы задачами?................................127
Резюме................................................................................................................128

5

Неблокирующие драйверы баз данных..............................130
5.1
5.2
5.3
5.4
5.5

Введение в --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.