📧 Dołącz do newslettera Machine LearningZapisuję się!

Asynchroniczność w Pythonie – wprowadzenie do asyncio

Kacper Sieradziński3/14/20252 min czytania
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:

  • 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:

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ę:

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:

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

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.

Tagi:

#Python#Nauka programowania#Podstawy

Zapisz się na nasz newsletter

Otrzymuj regularne aktualizacje, specjalne oferty i porady od ekspertów, które pomogą Ci osiągnąć więcej w krótszym czasie.