Asynchronous Programming ialah paradigma pengaturcaraan yang membolehkan program melaksanakan tugas lain sementara menunggu operasi I/O (seperti rangkaianpermintaan, membaca dan menulis fail, dsb.), dengan itu meningkatkan daya pemprosesan dan kelajuan tindak balas program. Dalam pengaturcaraan segerak tradisional, program perlu menunggu operasi I/O selesai sebelum meneruskan. Ini menyebabkan program disekat semasa menunggu operasi I/O, seterusnya mengurangkan prestasi program.
Dalam pengaturcaraan tak segerak, program boleh menyerahkan operasi I/O kepada gelung peristiwa (gelung peristiwa) untuk diproses, dan kemudian terus melaksanakan tugas lain. Apabila operasi I/O selesai, gelung acara akan memberitahu program, dan program kemudiannya boleh melakukan pemprosesan yang sepadan.
Coroutine ialah konsep asas dalam pengaturcaraan tak segerak Ia adalah fungsi yang boleh menjeda dan menyambung semula pelaksanaan. Dalam python, coroutine boleh ditakrifkan menggunakan kata kunci async def.
Berikut ialah contoh coroutine mudah:
async def coroutine_example(): print("协程开始执行") await asyncio.sleep(1)# 暂停1秒 print("协程继续执行")
Coroutine ini boleh dilaksanakan oleh gelung acara. Apabila panggilan coroutine menunggu asyncio.sleep(1), ia menjeda pelaksanaan selama 1 saat. Pada masa ini, gelung acara boleh melaksanakan tugas lain. Apabila 1 saat berlalu, coroutine akan terus melaksanakan.
Gelung acara ialah komponen teras pengaturcaraan tak segerak Ia bertanggungjawab untuk menjadualkan dan melaksanakan coroutine. Dalam Python, anda boleh menggunakan kaedah asyncio.get_event_loop() untuk mendapatkan gelung peristiwa semasa.
Kod berikut menunjukkan cara menggunakan gelung acara untuk melaksanakan coroutine:
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()
Kod ini mula-mula mencipta coroutine coroutine_example(), dan kemudian menggunakan gelung acara untuk melaksanakannya. Kaedah loop.run_until_complete(coroutine_example()) akan menunggu coroutine coroutine_example() selesai sebelum meneruskan.
aioHttp ialah perpustakaan HTTP tak segerak Python yang popular yang boleh digunakan untuk membina aplikasi web tak segerak. aiohttp boleh dipasang menggunakan arahan pip:
pip install aiohttp
Berikut ialah contoh aplikasi web tak segerak aiohttp yang mudah:
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())
Kod ini mula-mula mencipta sesi klien aiohttp, dan kemudian menggunakan kaedah session.get() untuk menghantar permintaan GET ke https://example.com. Apabila respons kembali, program akan mencetak kod status respons.
Python asynchronous programming ialah teknologi yang boleh meningkatkan prestasi program dengan ketara. Ia membolehkan atur cara melaksanakan tugasan lain sementara menunggu operasi I/O, sekali gus meningkatkan daya pemprosesan dan kelajuan tindak balas program. Artikel ini memperkenalkan asas pengaturcaraan tak segerak dalam Python dan menunjukkan cara menggunakan perpustakaan asyncio untuk melaksanakan pengaturcaraan tak segerak melalui kod demonstrasi.
Atas ialah kandungan terperinci Pengaturcaraan asynchronous Python: mudah dikuasai, meningkatkan prestasi program. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!