Asynchronous Pengaturcaraan dalam bahasa Inggeris bermaksud bahawa tugasan tertentu dalam program boleh dilaksanakan serentak tanpa menunggu tugas lain disiapkan, sekali gus meningkatkan kecekapan operasi keseluruhan program. Dalam python, modul asyncio ialah alat utama untuk melaksanakan pengaturcaraan tak segerak. Ia menyediakan coroutine, gelung acara dan komponen lain yang diperlukan untuk pengaturcaraan tak segerak.
Coroutine: Coroutine ialah fungsi khas yang boleh digantung dan kemudian menyambung semula pelaksanaan, sama seperti thread, tetapi coroutine lebih ringan dan menggunakan kurang memori daripada benang. Coroutine diisytiharkan dengan kata kunci async dan pelaksanaan dijeda pada kata kunci await.
Event Loop: Event Loop ialah konsep teras dalam pengaturcaraan tak segerak. Ia adalah gelung yang berjalan secara berterusan yang bertanggungjawab untuk menjadualkan tugas antara coroutine dan mengendalikan acara I/O. Apabila panggilan coroutine menunggu, panggilan itu digantung secara automatik dan gelung acara terus melaksanakan coroutine lain. Apabila peristiwa I/O berlaku, gelung peristiwa membangunkan coroutine yang sepadan untuk meneruskan pelaksanaan.
I/O Asynchronous: Disebabkan kewujudan GIL (Global Interpreter Lock), Multi-threadingin Python tidak boleh menjalankan tugas intensif CPU secara selari. I/O tak segerak boleh menyelesaikan masalah ini. Ia membolehkan program untuk terus melaksanakan tugas lain sementara menunggu operasi I/O selesai, sekali gus meningkatkan prestasi program dengan ketara.
Kod demo:
import asyncio async def get_html(url): async with aioHttp.ClientSession() as session: async with session.get(url) as response: return await response.text() async def main(): # 并发地获取多个网页的HTML内容 urls = ["https://www.example.com", "https://www.example2.com", "https://www.example3.com"] tasks = [get_html(url) for url in urls] html_content = await asyncio.gather(*tasks) # 处理获取到的HTML内容 for content in html_content: print(content) if __name__ == "__main__": asyncio.run(main())
Kelebihan pengaturcaraan tak segerak adalah sangat jelas Ia boleh meningkatkan keselarasan dan kelajuan tindak balas program, mengurangkan kependaman dan mengurangkan penggunaan sumber. Dalam
konkurensi tinggi dan senario aplikasi kependaman rendah, pengaturcaraan tak segerak merupakan teknologi yang sangat diperlukan.
Atas ialah kandungan terperinci Pengaturcaraan tak segerak Python: Mendedahkan intipati pengaturcaraan tak segerak dan mengoptimumkan prestasi kod. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!