Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में थ्रेड्स के साथ कनकरेंसी कैसे इम्प्लीमेंट करें

परिचय

पायथन में थ्रेड्स, सबप्रोसेसेज, जेनरेटर्स और अन्य ट्रिक्स का उपयोग करके कनकरेंट प्रोग्रामिंग के लिए अलग-अलग दृष्टिकोण हैं। थ्रेड्स इम्प्लीमेंट करने से पहले, आइए समझते हैं कि वास्तव में कनकरेंसी क्या है।

कनकरेंसी एक प्रोग्राम के भीतर तर्क का एक टुकड़ा है जो निष्पादन के कई अलग-अलग पथ खोलने की अनुमति देता है, जिसमें I/O के अलग-अलग स्ट्रीम्स, SQL क्वेरीज़ चलाना, आदि शामिल हैं, इस तरह से कि निष्पादन एक-दूसरे के साथ-साथ और स्वतंत्र दोनों प्रतीत होता है।

कैसे करें

पहले हम साइट URLs के माध्यम से जाने के लिए एक सिंगल थ्रेड बनाते हैं और फिर देखते हैं कि प्रोग्राम को तेज करने के लिए थ्रेडिंग कॉन्सेप्ट्स का उपयोग कैसे करें।


# स्टेप 1 - आज जिन वेबसाइट URLs पर जाना है उनकी लिस्ट बनाएं
import requests

tutorialpoints_url = [
    'https://www.tutorialspoint.com/python/index.htm',
    'https://www.tutorialspoint.com/cplusplus/index.htm',
    'https://www.tutorialspoint.com/java/index.htm',
    'https://www.tutorialspoint.com/html/index.htm',
    'https://www.tutorialspoint.com/cprogramming/index.htm'
]

# पास किए गए URL को रिक्वेस्ट करने और स्टेटस कोड लौटाने का फंक्शन
def visit_site(site_url):
    """Makes a GET request to a website URL and prints response information"""
    response = requests.get(site_url)
    print(f' *** {site_url} returned {response.status_code} after {response.elapsed} seconds')

# रिस्पॉन्स लाने के लिए सिंगल थ्रेड बनाएं
if __name__ == '__main__':
    for site_url in tutorialpoints_url:
        visit_site(site_url)
    print(f" *** end of the program ***")

आउटपुट: URLs क्रमिक रूप से प्रोसेस होते हैं, प्रत्येक अपने रिस्पॉन्स का इंतजार करता है।

अब एक थ्रेडेड प्रोग्राम लिखते हैं जो रिक्वेस्ट्स को समानांतर में सबमिट करता है और इंतजार किए बिना अगले चरण पर आगे बढ़ता है।


from threading import Thread

def visit_site(site_url):
    """Makes a GET request to a website URL and prints response information"""
    response = requests.get(site_url)
    print(f' *** {site_url} returned {response.status_code} after {response.elapsed} seconds')

if __name__ == '__main__':
    for site_url in tutorialpoints_url:
        t = Thread(target=visit_site, args=(site_url,))
        t.start()

आउटपुट: सभी URLs लगभग एक साथ प्रोसेस होते हैं, कुल समय काफी कम हो जाता है।

चर्चा

  • threading लाइब्रेरी का उपयोग किसी भी पायथन कॉल करने योग्य को अपने थ्रेड में निष्पादित करने के लिए किया जा सकता है।
  • start() मेथड site_url आर्गुमेंट्स के साथ visit_site फंक्शन को इनवोक करता है।
  • एक बार शुरू होने पर थ्रेड्स अपने स्वयं के थ्रेड में निष्पादित होते हैं जो पूरी तरह से ऑपरेटिंग सिस्टम द्वारा प्रबंधित होता है।

थ्रेड स्टेटस चेक करना


if t.is_alive():
    print(f' *** {t} is Still executing')
else:
    print(f' *** {t} is Completed')
  1. Python में Bokeh के साथ इमेजेज के साथ कैसे काम करें? Python में Bokeh के साथ इमेजेज के साथ कैसे काम करें?

    Bokeh में इमेजेज के साथ काम करने के लिए image_url() मेथड का उपयोग करें और इमेजेज की लिस्ट पास करें। चरण :func:show कॉल होने पर फाइल में सेव आउटपुट जनरेट करने के लिए डिफ़ॉल्ट आउटपुट स्टेट कॉन्फिगर करें। प्लॉटिंग के लिए नया फिगर बनाएं। दिए गए URLs से लोड की गई इमेजेज रेंडर करें। Bokeh ऑब्जेक्ट या एप

  1. - पायथन में Microsoft Word दस्तावेज़ पढ़ने का तरीका

    परिचय पायथन का Word दस्तावेज़ (.docx) के लिए समर्थन सीमित है। python-docx लाइब्रेरी दस्तावेज़ बनाने और बुनियादी मेटाडेटा पढ़ने की अनुमति देती है, लेकिन पूरी सामग्री निकालने के लिए कस्टम कोड चाहिए क्योंकि .docx वास्तव में एक ZIP संग्रह है जिसमें XML फाइलें होती हैं। दूरस्थ Word दस्तावेज़ पढ़ना (XML

  1. पायथन में API परिणामों को विज़ुअलाइज़ करना (GitHub API उदाहरण) पायथन में API परिणामों को विज़ुअलाइज़ करना (GitHub API उदाहरण)

    परिचय API लाइव डेटा निकालने का शक्तिशाली तरीका है। Python से लगभग किसी भी API को कॉल कर सकते हैं। यहां GitHub API से JavaScript रिपॉजिटरी डेटा लेकर Plotly से विज़ुअलाइज़ करेंगे। चरण 1. Requests इंस्टॉल करें pip install requests plotly 2. GitHub API कॉल करें import requests site_url = https://ap