Python में Async Programming: asyncio और aiohttp का उपयोग

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Python में Async Programming क्या है?

Async Programming कोड लिखने का एक तरीका है जिसमें कार्य एक के बाद एक नहीं, बल्कि समानांतर या इवेंट के इंतजार के दौरान मुख्य प्रवाह को ब्लॉक किए बिना चलते हैं। आधुनिक प्रोग्रामिंग में संसाधनों और समय का कुशल उपयोग बहुत महत्वपूर्ण है।

Async Programming से ये संभव है:

  • कार्यों का तेज़ निष्पादन
  • प्रोग्राम की प्रतिक्रिया क्षमता में सुधार
  • सिस्टम संसाधनों का बेहतर उपयोग

Async Programming के मुख्य लाभ

उपयोग के क्षेत्र

Async Programming विशेष रूप से इनपुट-आउटपुट ऑपरेशन के लिए उपयोगी है:

  • फ़ाइलों के साथ काम करना
  • नेटवर्क अनुरोध (HTTP API)
  • डेटाबेस के साथ इंटरैक्शन
  • वेब-सॉकेट प्रोसेसिंग
  • बड़े डेटा सेट का पार्सिंग

मल्टीथ्रेडिंग से अंतर

मल्टीथ्रेडिंग के विपरीत, Async Programming में अतिरिक्त थ्रेड या प्रोसेस बनाने की जरूरत नहीं होती। इससे सिस्टम पर लोड कम होता है और थ्रेड्स के बीच लॉकिंग या डेटा सिंक्रोनाइज़ेशन की समस्याओं से बचा जा सकता है।

Python में Async Programming कैसे काम करता है

Python asyncio मॉड्यूल के माध्यम से Async Programming के लिए बिल्ट-इन सपोर्ट प्रदान करता है, जिसे Python 3.4 से स्टैंडर्ड लाइब्रेरी में जोड़ा गया था।

मुख्य अवधारणाएँ

  • async def — एक async फंक्शन (कोरूटीन) को परिभाषित करता है
  • await — बताता है कि कोरूटीन के पूरा होने तक इंतजार करना है
  • asyncio — async कार्यों के साथ काम करने के लिए स्टैंडर्ड मॉड्यूल
  • event loop — इवेंट प्रोसेसिंग लूप, जो कोरूटीन के निष्पादन को नियंत्रित करता है

Async फंक्शन का बेसिक उदाहरण

import asyncio

async def greet():
    print("नमस्ते!")
    await asyncio.sleep(1)
    print("1 सेकंड बीत गया")

asyncio.run(greet())

इस उदाहरण में await asyncio.sleep(1) एक संसाधन-गहन ऑपरेशन, जैसे नेटवर्क अनुरोध, के इंतजार का अनुकरण करता है।

Async फंक्शन बनाना और उपयोग करना

Async फंक्शन को परिभाषित करना

Async फंक्शन बनाने के लिए फंक्शन की परिभाषा से पहले async कीवर्ड का उपयोग करें:

async def fetch_data():
    print("डेटा का अनुरोध...")
    await asyncio.sleep(2)
    print("डेटा प्राप्त हुआ")

Async फंक्शन को कॉल करना

Async फंक्शन को asyncio.run() के माध्यम से कॉल किया जाता है:

asyncio.run(fetch_data())

एक साथ कई कार्यों को चलाना

asyncio.gather() का उपयोग

एक साथ कई कोरूटीन चलाने के लिए asyncio.gather() का उपयोग करें:

async def task(name, delay):
    print(f"कार्य {name} शुरू")
    await asyncio.sleep(delay)
    print(f"कार्य {name} पूरा हुआ")

async def main():
    await asyncio.gather(
        task("A", 2),
        task("B", 1),
        task("C", 3)
    )

asyncio.run(main())

कार्य शुरू करने के अन्य तरीके

asyncio.gather() के अलावा, आप इसका उपयोग कर सकते हैं:

  • asyncio.create_task() — अलग-अलग कार्य बनाने के लिए
  • asyncio.wait() — अतिरिक्त सेटिंग्स के साथ कार्यों के पूरा होने की प्रतीक्षा करने के लिए
  • asyncio.as_completed() — जैसे ही परिणाम तैयार हों, उन्हें प्राप्त करने के लिए

Async इटरेटर और जनरेटर

Async इटरेटर बनाना

डेटा स्ट्रीम को Async तरीके से प्रोसेस करने के लिए Async इटरेटर का उपयोग करें:

class AsyncCounter:
    def __init__(self, max_count):
        self.max_count = max_count
        s                

ब्लॉग

पुस्तक अनुशंसाएँ