Asynchronous na Pagpoproseso sa Python
Ipinaliliwanag ng artikulong ito ang asynchronous na pagpoproseso sa Python.
Maaari kang matuto ng mga halimbawa ng code para sa pangunahing paggamit ng async/await at ng asyncio na module ng Python.
YouTube Video
Asynchronous na Pagpoproseso sa Python
Ang asynchronous na pagproseso sa Python ay isang mekanismo para mahusay na mapangasiwaan ang mga I/O operation na matagal matapos, tulad ng pagbabasa at pagsulat ng mga file o komunikasyon sa network. Sa synchronous na pagproseso, naghihintay ang susunod na operasyon hanggang matapos ang kasalukuyan, ngunit sa asynchronous na pagproseso, maaari kang magpatuloy sa ibang gawain habang naghihintay. Sa Python, ang asyncio na module ay ibinibigay para maisagawa ang asynchronous na pagproseso. Dito, ipapaliwanag namin ang mga pangunahing elemento nito at kung paano ito gamitin, hakbang-hakbang.
Pangunahing Syntax
Sa pinakapuso ng asynchronous na pagproseso ay ang mga function na tinatawag na coroutines. Ang mga async ay nagtatakda ng asynchronous na mga function, at ang await ay ginagamit upang maghintay para sa isang asynchronous na gawain sa loob ng mga function na iyon.
1import asyncio
2
3async def say_hello():
4 print("Hello")
5 await asyncio.sleep(1)
6 print("World")
7
8if __name__ == "__main__":
9 # Execute asynchronous task
10 asyncio.run(say_hello())- Sa itaas na code, ang function na
say_helloay tinukoy bilang isang asynchronous na gawain. Habang naghihintay ng 1 segundo gamit angsleep(), maaaring isagawa ang ibang asynchronous na mga gawain.
Pagpapatupad ng Maramihang Gawain
Sa paggamit ng gather na function mula sa asyncio module, maaari kang magsagawa ng maraming gawain nang sabay-sabay.
1import asyncio
2
3async def task1():
4 print("Task 1 started")
5 await asyncio.sleep(2)
6 print("Task 1 completed")
7
8async def task2():
9 print("Task 2 started")
10 await asyncio.sleep(1)
11 print("Task 2 completed")
12
13async def main():
14 await asyncio.gather(task1(), task2())
15
16if __name__ == "__main__":
17 asyncio.run(main())- Sa halimbawa na ito, ang
task1attask2ay ipinapatupad nang sabay-sabay. Bilang resulta, angtask2ang unang natapos sa dalawang gawain, ngunit ang kabuuang oras ng pagpapatupad ay tumutugma sa pinakamahabang oras ng gawain.
Paghawak ng Error
Mahalaga ang paghawak ng error kahit sa asynchronous na pagpoproseso. Maaari mong abutin at harapin ang mga error gamit ang karaniwang syntax ng try-except.
1import asyncio
2
3async def faulty_task():
4 raise Exception("An error occurred")
5
6async def main():
7 try:
8 await faulty_task()
9 except Exception as e:
10 print(f"Caught an error: {e}")
11
12if __name__ == "__main__":
13 asyncio.run(main())- Ipinapakita ng code na ito kung paano mahuhuli ang mga exception na nangyayari sa loob ng asynchronous na mga function gamit ang
try-exceptat ligtas na mahahawakan ang kanilang mga error message. Ang exception mula safaulty_taskay nahuhuli sa loob ngmainat maayos na inilalabas.
Buod
Ang asynchronous na pagproseso sa Python ay gumagamit ng async / await at asyncio para sabay-sabay na magsagawa ng ibang gawain habang naghihintay sa I/O, kaya't mas nagiging mahusay ang pagproseso. Sa pamamagitan ng sabayang pagtakbo ng maraming gawain at asynchronous na I/O, maaaring lubos na mapabuti ang performance. Dagdag pa rito, dahil maaari mong hawakan ang mga error tulad ng karaniwang try-except, ligtas mong mapapatakbo ang asynchronous na code.
Maaari mong sundan ang artikulo sa itaas gamit ang Visual Studio Code sa aming YouTube channel. Paki-check din ang aming YouTube channel.