Heim > Artikel > Backend-Entwicklung > Asynchrone Python-Programmierung: einfach zu beherrschen, Programmleistung verbessern
Asynchrone Programmierung ist ein Programmierparadigma, das es einem Programm ermöglicht, andere Aufgaben auszuführen, während es auf E/A-Vorgänge wartet (z. B. Netzwerkanfragen, Lesen und Schreiben von Dateien usw.), wodurch der Durchsatz und die Reaktionsgeschwindigkeit des Programms verbessert werden Programm. Bei der herkömmlichen synchronen Programmierung muss das Programm warten, bis der E/A-Vorgang abgeschlossen ist, bevor es fortfahren kann. Dies führt dazu, dass das Programm blockiert, während es auf E/A-Vorgänge wartet, wodurch die Programmleistung verringert wird.
Bei der asynchronen Programmierung kann das Programm E/A-Vorgänge zur Verarbeitung an eine Ereignisschleife (Ereignisschleife) übergeben und dann mit der Ausführung anderer Aufgaben fortfahren. Wenn der E/A-Vorgang abgeschlossen ist, benachrichtigt die Ereignisschleife das Programm und das Programm kann dann die entsprechende Verarbeitung durchführen.
python können Coroutinen mit dem Schlüsselwort async def definiert werden.
Hier ist ein einfaches Coroutine-Beispiel:
async def coroutine_example(): print("协程开始执行") await asyncio.sleep(1)# 暂停1秒 print("协程继续执行")Diese Coroutine kann von der Ereignisschleife ausgeführt werden. Wenn die Coroutine-Aufrufe auf asyncio.sleep(1) warten, wird die Ausführung für 1 Sekunde angehalten. Während dieser Zeit kann die Ereignisschleife andere Aufgaben ausführen. Wenn 1 Sekunde verstrichen ist, wird die Coroutine weiter ausgeführt.
Python können Sie die Methode asyncio.get_event_loop() verwenden, um die aktuelle Ereignisschleife abzurufen.
Der folgende Code zeigt, wie eine Ereignisschleife zum Ausführen einer Coroutine verwendet wird:
import asyncio async def coroutine_example(): print("协程开始执行") await asyncio.sleep(1)# 暂停1秒 print("协程继续执行") loop = asyncio.get_event_loop() loop.run_until_complete(coroutine_example()) loop.close()Dieser Code erstellt zunächst eine Coroutine coroutine_example() und führt sie dann mithilfe der Ereignisschleife aus. Die Methode „loop.run_until_complete(coroutine_example())“ wartet, bis die Coroutine „coroutine_example()“ abgeschlossen ist, bevor sie fortfährt.
Http ist eine beliebte asynchrone Python-HTTP-Bibliothek, die zum Erstellen asynchroner Webanwendungen verwendet werden kann. aiohttp kann mit dem pip-Befehl installiert werden:
pip install aiohttpHier ist ein einfaches Beispiel für eine asynchrone aiohttp-Webanwendung:
import aiohttp async def main(): async with aiohttp.ClientSession() as session: async with session.get("https://example.com") as response: print(response.status) if __name__ == "__main__": asyncio.run(main())Dieser Code erstellt zunächst eine aiohttp-Clientsitzung und verwendet dann die Methode session.get(), um eine GET-Anfrage an https://example.com zu senden. Wenn die Antwort zurückgegeben wird, gibt das Programm den Antwortstatuscode aus.
Das obige ist der detaillierte Inhalt vonAsynchrone Python-Programmierung: einfach zu beherrschen, Programmleistung verbessern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!