पायथन में असिंक्रोनस प्रोसेसिंग

पायथन में असिंक्रोनस प्रोसेसिंग

यह लेख पायथन में असिंक्रोनस प्रोसेसिंग के बारे में समझाता है।

आप पायथन के async/await और asyncio मॉड्यूल के बुनियादी उपयोग के लिए कोड सैंपल सीख सकते हैं।

YouTube Video

पायथन में असिंक्रोनस प्रोसेसिंग

पायथन में असिंक्रोनस प्रोसेसिंग समय लेने वाले I/O ऑपरेशनों, जैसे कि फाइल पढ़ना और लिखना या नेटवर्क संचार, को कुशलतापूर्वक संभालने के लिए एक तंत्र है। सिंक्रोनस प्रोसेसिंग में, अगला ऑपरेशन तब तक इंतजार करता है जब तक वर्तमान पूरा नहीं हो जाता, लेकिन असिंक्रोनस प्रोसेसिंग के साथ आप प्रतीक्षा के दौरान दूसरे कार्य भी कर सकते हैं। पायथन में असिंक्रोनस प्रोसेसिंग करने के लिए asyncio मॉड्यूल प्रदान किया गया है। यहाँ हम इसके मूल तत्व और उन्हें चरण दर चरण उपयोग करने का तरीका समझाएँगे।

मूल वाक्यविन्यास

असिंक्रोनस प्रोसेसिंग के केंद्र में कोरोटीन नामक फंक्शन होते हैं। async फंक्शन्स असिंक्रोनस फंक्शन्स को परिभाषित करते हैं, और await इन फंक्शन्स के भीतर असिंक्रोनस कार्य के लिए प्रतीक्षा करने हेतु उपयोग किया जाता है।

 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())
  • उपरोक्त कोड में, say_hello फंक्शन को एक असिंक्रोनस कार्य के रूप में परिभाषित किया गया है। जब आप sleep() के साथ 1 सेकंड प्रतीक्षा कर रहे होते हैं, तब अन्य असमकालिक कार्य (asynchronous tasks) निष्पादित किए जा सकते हैं।

कई कार्यों का निष्पादन करना

asyncio मॉड्यूल के gather फ़ंक्शन का उपयोग करके, आप कई कार्यों को एक साथ चला सकते हैं।

 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())
  • इस उदाहरण में, task1 और task2 को समवर्ती रूप से निष्पादित किया जाता है। परिणामस्वरूप, task2 दोनों कार्यों में से पहले पूरा होता है, लेकिन कुल निष्पादन समय सबसे लंबे कार्य के निष्पादन समय के बराबर होता है।

त्रुटि प्रबंधन

असिंक्रोनस प्रोसेसिंग में भी त्रुटि प्रबंधन महत्वपूर्ण है। आप मानक 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())
  • यह कोड दिखाता है कि असिंक्रोनस फंक्शनों के अंदर होने वाले अपवादों को try-except से कैसे पकड़ा जा सकता है और उनके त्रुटि संदेशों को सुरक्षित रूप से संभाला जा सकता है। faulty_task से उत्पन्न अपवाद को main के अंदर पकड़ा गया है और उसे उपयुक्त रूप से आउटपुट किया गया है।

सारांश

पायथन में असिंक्रोनस प्रोसेसिंग async / await और asyncio का उपयोग करके I/O की प्रतीक्षा करते समय अन्य कार्यों को समकालिक रूप से निष्पादित करती है, जिससे कुशल प्रोसेसिंग संभव होती है। कई कार्यों के समकलन निष्पादन और असिंक्रोनस I/O का लाभ उठाकर, आप प्रदर्शन में काफी सुधार कर सकते हैं। इसके अलावा, चूंकि आप त्रुटियों को सामान्य try-except की तरह संभाल सकते हैं, आप सुरक्षित रूप से असिंक्रोनस कोड चला सकते हैं।

आप हमारे YouTube चैनल पर Visual Studio Code का उपयोग करके ऊपर दिए गए लेख के साथ आगे बढ़ सकते हैं। कृपया YouTube चैनल को भी देखें।

YouTube Video