Cykl: Asynchroniczność w Pythonie - wprowadzenie do asyncio · Część 1/14

Asynchroniczność w Pythonie - wprowadzenie do asyncio

Kacper Sieradziński
Kacper Sieradziński9 czerwca 2025 · 2 min czytania
Streszczenie
  • Wprowadzenie do
  • Zobacz też
  • Podstawowe pojęcia :
  • Pisanie korutyn z
Asynchroniczność w Pythonie - wprowadzenie do asyncio

Asynchroniczność w Pythonie to technika, która pozwala na wykonywanie wielu operacji naraz, bez konieczności blokowania programu na czas oczekiwania na zakończenie długotrwałych zadań, takich jak operacje sieciowe czy dyskowe. Dzięki asynchroniczności możemy tworzyć bardziej wydajne i responsywne aplikacje, które lepiej wykorzystują zasoby systemowe. W tym artykule dowiesz się, jak korzystać z modułu asyncio w Pythonie, aby tworzyć asynchroniczne programy. Otrzymasz również praktyczne przykłady kodu, które ułatwią Ci zrozumienie tej koncepcji.

Wprowadzenie do asyncio

asyncio to wysoko wydajny moduł w Pythonie, zaprojektowany do obsługi pracy asynchronicznej poprzez używanie tzw. pętli zdarzeń. Pętla zdarzeń zarządza planowaniem i wykonywaniem asynchronicznych zadań, pozwalając na wykonywanie ich bez blokowania głównego wątku programu.

Zobacz też

Na blogu mamy też kilka innych artykułów, które mogą Cię zainteresować:

Podstawowe pojęcia asyncio:

Kurs · 24 lekcje8h 14m
Kurs

Kurs Python dla początkujących — PyStart

Zacznij programować w Pythonie! Idealne dla osób bez doświadczenia. Praktyczne zadania, projekty i wsparcie społeczności.

  • 24 lekcje wideo + 80 ćwiczeń
  • Realne bazy z e-commerce
  • Społeczność i code-review
499 zł799 zł−38%
Rozpocznij naukę
  • Coroutine (korutyna): Asynchroniczna funkcja w Pythonie oznaczona słowem kluczowym async. Korutyny pozwalają na używanie instrukcji await w celu asynchronicznego wywoływania funkcji i oczekiwania na ich zakończenie.

  • Event Loop (pętla zdarzeń): Mechanizm, który zarządza asynchronicznymi zadaniami i ich kolejnością wykonania.

Pisanie korutyn z asyncio

Aby stworzyć korutynę w Pythonie, używamy słowa kluczowego async def. Oto prosty przykład korutyny, która oczekuje przez określoną ilość sekund, zanim wyświetli komunikat:

Python
1 2 3 4 5 6 import asyncio async def hello_world(): print("Hello") await asyncio.sleep(1) print("World")

W powyższym przykładzie asyncio.sleep(1) jest używane zamiast tradycyjnego time.sleep(1), aby umożliwić pętli zdarzeń wykonywanie innych operacji podczas oczekiwania.

Uruchamianie pętli zdarzeń

Aby uruchomić pętlę zdarzeń i wykonywać korutyny, używamy funkcji asyncio.run(). Oto jak uruchomić naszą przykładową korutynę:

Python
1 asyncio.run(hello_world())

Tworzenie bardziej skomplikowanych zadań

W asyncio możemy uruchamiać wiele korutyn równocześnie. W tym celu używamy funkcji takich jak asyncio.gather() do wykonywania zadań równolegle:

Python
1 2 3 4 5 6 7 8 9 10 11 12 13 import asyncio async def task(name, delay): await asyncio.sleep(delay) print(f"Task {name} completed after {delay} seconds") async def main(): await asyncio.gather( task("A", 2), task("B", 1) ) asyncio.run(main())

W powyższym przykładzie uruchamiamy dwie korutyny jednocześnie, każda z innym czasem oczekiwania. Dzięki asyncio.gather(), oba zadania są zarządzane przez pętlę zdarzeń i zakończą się, gdy wszystkie z nich są gotowe.

Korzyści z użycia asynchroniczności

Newsletter · co środę

Python co tydzień — newsletter dla programistów

Otrzymuj codzienne ćwiczenia, ciekawostki z ekosystemu Pythona i wskazówki do rozmów rekrutacyjnych.

2 312 czytelników · ⭐ 4,8

Asynchroniczność jest szczególnie przydatna w aplikacjach, które muszą obsługiwać wiele żądań jednocześnie, na przykład serwisy internetowe, aplikacje sieciowe czy programy komunikacyjne. Dzięki zmniejszeniu blokad i zwiększonej responsywności, takie aplikacje mogą działać płynniej i bardziej efektywnie.

Zakończenie

Koncepcja asynchroniczności może z początku wydawać się trudna do zrozumienia, ale dzięki asyncio w Pythonie stała się ona dostępniejsza dla programistów. Zachęcamy do eksplorowania tej technologii i tworzenia wydajnych, asynchronicznych rozwiązań dla swoich projektów.

Część 2 z 14

Debugowanie i testowanie generatorów w Pythonie

druga lekcja cyklu „Asynchroniczność w Pythonie - wprowadzenie do asyncio"

Czytaj kolejny →