Asyncio и конкурентное программирование на Python [Мэттью Фаулер] (pdf) читать постранично
Книга в формате pdf! Изображения и текст могут не отображаться!
[Настройки текста] [Cбросить фильтры]
- 1
- 2
- 3
- . . .
- последняя (58) »
Asyncio и конкурентное
программирование на Python
Python Concurrency
with asyncio
M AT T H E W F OW L E R
Asyncio и конкурентное
программирование на Python
М Э Т Т Ь Ю ФАУЛ Е Р
Москва, 2023
УДК 004.42
ББК 32.372
Ф28
Фаулер М.
Ф28 Asyncio и конкурентное программирование на Python / пер. с англ. А. А. Слинкина. – М.: ДМК Пресс, 2022. – 398 с.: ил.
ISBN 978-5-93700-166-5
Из данной книги вы узнаете, как работает библиотека asyncio, как написать первое
реальное приложение и как использовать функции веб-API для для повышения производительности, пропускной способности и отзывчивости приложений на языке
Python. Рассматривается широкий круг вопросов: от модели однопоточной конкурентности до многопроцессорной обработки.
Издание будет полезно не только Python-разработчикам, но и всем программистам,
которые хотят лучше понимать общие проблемы конкурентности.
УДК 004.42
ББК 32.372
© DMK Press 2022. Authorized translation of the English edition © 2022 Manning Publications.
This translation is published and sold by permission of Manning Publications, the owner of all rights
to publish and sell the same.
Все права защищены. Любая часть этой книги не может быть воспроизведена в какой
бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав.
ISBN 978-1-6172-9866-0 (англ.)
ISBN 978-5-93700-166-5 (рус.)
© Manning Publications, 2022
© Перевод, оформление, издание, ДМК Пресс, 2022
Посвящается моей любимой супруге Кэти.
Спасибо, что ты всегда рядом.
Оглавление
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Первое знакомство с asyncio............................................................................... 21
Основы asyncio....................................................................................................... 45
Первое приложение asyncio................................................................................ 74
Конкурентные веб-запросы...............................................................................101
Неблокирующие драйверы баз данных. .........................................................130
Счетные задачи.....................................................................................................157
Решение проблем блокирования с помощью потоков................................189
Потоки данных......................................................................................................223
Веб-приложения...................................................................................................251
Микросервисы.......................................................................................................279
Синхронизация.....................................................................................................303
Асинхронные очереди.........................................................................................327
Управление подпроцессами. .............................................................................350
Продвинутое использование asyncio...............................................................365
Содержание
Оглавление............................................................................................................. 6
Предисловие......................................................................................................... 12
Благодарности..................................................................................................... 14
Об этой книге...................................................................................................... 15
Об авторе............................................................................................................ 19
Об иллюстрации на обложке............................................................................... 20
1
2
Первое знакомство с asyncio...................................................... 21
1.1
1.2
Что такое asyncio?.................................................................................... 22
Что такое ограниченность производительностью ввода-вывода
и ограниченность быстродействием процессора................................. 24
1.3
Конкурентность, параллелизм и многозадачность.............................. 25
1.3.1
Конкурентность............................................................................ 25
1.3.2
Параллелизм. ................................................................................ 26
1.3.3
Различие между конкурентностью и параллелизмом..................... 27
1.3.4
Что такое многозадачность......................................................... 28
1.3.5
Преимущества кооперативной многозадачности.......................... 28
1.4
Процессы, потоки, многопоточность и многопроцессность................ 29
1.4.1
Процесс. ........................................................................................ 29
1.4.2
Поток. .......................................................................................... 29
1.5
Глобальная блокировка интерпретатора............................................... 33
1.5.1
Освобождается ли когда-нибудь GIL?............................................. 37
1.5.2
Аsyncio и GIL.................................................................................. 39
1.6
Как работает однопоточная конкурентность........................................ 39
1.6.1
Что такое сокет?......................................................................... 39
1.7
Как работает цикл событий.................................................................... 41
Резюме................................................................................................................. 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
Конкурентное
- 1
- 2
- 3
- . . .
- последняя (58) »
Последние комментарии
3 часов 4 минут назад
3 часов 5 минут назад
8 часов 24 минут назад
12 часов 5 минут назад
12 часов 26 минут назад
13 часов 20 минут назад