Python i Asyncio Programowanie asynchroniczne.pdf
(
2465 KB
)
Pobierz
•
Kup książkę
•
Poleć książkę
•
Oceń książkę
•
Księgarnia internetowa
•
Lubię to! » Nasza społeczność
Spis treści
Wstęp ......................................................................................................................... 7
1. Prezentacja Asyncio .................................................................................................. 11
Restauracja ThreadBotów
Epilog
Jakie problemy stara się rozwiązywać Asyncio?
11
15
16
2. Prawda o wątkach .................................................................................................... 19
Zalety stosowania wątków
Wady stosowania wątków
Studium przypadku: roboty i sztućce
20
21
24
3. Asyncio — przegląd informacji ................................................................................. 31
Szybki start
Wieża Asyncio
Koprocedury
Nowe słowa kluczowe async def
Nowe słowo kluczowe await
Pętla zdarzeń
Klasy Task i Future
Kilka słów o terminologii
Asynchroniczne menedżery kontekstu: async with
Zastosowanie modułu contextlib
Iteratory asynchroniczne: async for
Prostszy kod dzięki użyciu generatorów asynchronicznych
Asynchroniczne wyrażenia listowe
Rozpoczynanie i kończenie (łagodne!)
Do czego służy argument return_exceptions=True funkcji gather()?
Sygnały
Oczekiwanie na egzekutor podczas procesu kończenia
32
37
40
41
43
46
48
51
54
55
58
61
62
64
68
70
74
5
Kup książkę
Poleć książkę
4. 20 bibliotek Asyncio, których nie używasz (ale… mniejsza z tym) .............................. 81
Strumienie (biblioteka standardowa)
Studium przypadku: kolejka komunikatów
Studium przypadku: poprawa kolejki komunikatów
Framework Twisted
Kolejka Janus
aiohttp
Studium przypadku: „Witaj, świecie!”
Studium przypadku: mechanizm zbierania doniesień
ØMQ (ZeroMQ)
Studium przypadku: obsługa wielu gniazd
Studium przypadku: monitorowanie wydajności aplikacji
asyncpg i Sanic
Studium przypadku: unieważnienie pamięci podręcznej
Inne biblioteki i zasoby
82
82
89
93
95
97
97
97
101
102
106
113
117
127
5. Przemyślenia końcowe ............................................................................................ 129
A. Krótka historia programowania asynchronicznego w języku Python ......................... 131
Na początku było asyncore
Ścieżka do rodzimych koprocedur
131
133
B. Materiały uzupełniające .......................................................................................... 135
Przykład ze sztućcami z wykorzystaniem asyncio
Materiały dodatkowe do przykładu z mechanizmem zbierania doniesień
Materiały uzupełniające studium przypadku z ZeroMQ
Obsługa wyzwalaczy bazy danych
na potrzeby studium przypadku użycia bibliotek asyncpg
Materiał uzupełniający do przykładu z frameworkiem Sanic: aelapsed i aprofiler
135
137
138
140
142
6
Spis treści
Poleć książkę
Kup książkę
ROZDZIAŁ 1.
Prezentacja Asyncio
Moja historia jest podobna do twojej, tylko ciekawsza, bo są w niej roboty.
— Bender,
Futurama,
odcinek „30% Iron Chef”
Najczęściej zadawanym mi pytaniem odnoście Asyncio w Pythonie 3 jest: „Co to jest i co z tym
mogę zrobić?”. Odpowiedź, którą zazwyczaj można usłyszeć na tak postawione pytanie, będzie
zapewne mówiła o możliwości wykonywania wielu równoczesnych żądań HTTP w jednym pro-
gramie. Jednak taka odpowiedź będzie niepełna — i to bardzo. Stosowanie biblioteki Asyncio
wymaga zmiany myślenia o strukturze pisanych programów.
Opowieść przedstawiona w dalszej części tego rozdziału zapewnia kontekst, który pozwoli lepiej
zrozumieć tę zmianę. Kluczowym zagadnieniem związanym ze stosowaniem biblioteki Asyncio
jest to, w jaki sposób można najlepiej wykonywać wiele zadań w tym samym czasie — przy czym
nie chodzi o dowolne zadania, a konkretnie o te, które wymagają oczekiwania. Kluczową koncep-
cją związaną z tym stylem programowania jest to, że podczas oczekiwania na zakończenie
tego
zadania, można zająć się
innymi
zadaniami.
Restauracja ThreadBotów
Załóżmy, że mamy obecnie rok 2051 i jesteśmy właścicielami restauracji. Podstawą ekonomii jest
w tym czasie automatyzacja, którą zapewniają głównie roboty, ale potrzeby ludzi się nie zmieniły
— wciąż lubią oni od czasu do czasu gdzieś wyjść i coś zjeść w restauracji. W naszej restauracji
wszystkie prace wykonują roboty, oczywiście humanoidalne, jednak nie sposób ich pomylić
z człowiekiem. Największym producentem robotów jest firma Threading Inc., a jej roboty przeznaczone
do pracy są potocznie nazywane „ThreadBotami”.
Poza tym drobnym „robotycznym szczegółem”, jakim jest obsługa, nasza restauracja wygląda i działa
bardzo podobnie do tych staromodnych lokali z roku 2020. Jej goście poszukują tego nieco pod-
starzałego, klasycznego klimatu. Oczekują świeżego jedzenia przygotowywanego z nieprzetwo-
rzonych produktów. Chcą siedzieć przy stolikach. Pragną poczekać trochę, aż ich posiłek zostanie
przygotowany — choć z drugiej strony nie chcą czekać zbyt długo. A po zjedzeniu chcą dostać rachunek
i zapłacić, a może nawet zostawić napiwek — tak, by poczuć się jak w starych czasach.
11
Kup książkę
Poleć książkę
Plik z chomika:
PDFator
Inne pliki z tego folderu:
Analiza i projektowanie obiektowe Rusz glowa.pdf
(3798 KB)
Analiza i projektowanie strukturalne Wydanie II.pdf
(1114 KB)
Adaptywny kod Zwinne programowanie wzorce projektowe i SOLID ne zasady Wydanie II.pdf
(953 KB)
Agile Przewodnik po zwinnych metodykach programowania.pdf
(1538 KB)
Agile Development Filozofia programowania zwinnego.pdf
(220 KB)
Inne foldery tego chomika:
3ds max
Access
Acrobat
After Effects
Agile - Programowanie
Zgłoś jeśli
naruszono regulamin