पाइथन में मुथिंग क्या है और इसे कैसे प्राप्त करें?

जानें कि अजगर में मल्टीटास्किंग क्या है। यह भी विस्तार से बताता है कि थ्रेड कैसे बनाकर, थ्रेड क्लास को बढ़ाए बिना और इसका विस्तार किए बिना थ्रेड्स कैसे बनाएं।

समय जीवन का सबसे महत्वपूर्ण कारक है। इसके महत्व के कारण, प्रोग्रामिंग की दुनिया विभिन्न चाल और तकनीक प्रदान करती है जो आपको समय की खपत को कम करने में मदद करती है, जिससे प्रदर्शन में वृद्धि होती है। इस तरह का एक दृष्टिकोण पाइथन में मल्टीथ्रेडिंग है, जो सबसे महत्वपूर्ण अवधारणाओं के अंतर्गत आता है ।

यहाँ इस लेख में शामिल सभी बड़ी कंपनियों का एक त्वरित सारांश है:





क्या है बहु कार्यण अजगर में?
एक धागा क्या है?
अजगर में मल्टीथ्रेडिंग क्या है?
पायथन में मल्टीथ्रेडिंग का उपयोग कब करें?
पायथन में मल्टीथ्रेडिंग कैसे प्राप्त करें?
पायथन में धागे कैसे बनाएं?

पायथन में मल्टीथ्रेडिंग का उपयोग करने के फायदे



शुरू करने के लिए, आइए पहले हम मल्टीटास्किंग को समझने की कोशिश करें इससे पहले कि हम पायथन में मल्टीथ्रेडिंग के बारे में सीखना शुरू करें।

पायथन में मल्टीटास्किंग क्या है?

मल्टीटास्किंग, सामान्य रूप से, एक साथ कई कार्यों को करने की क्षमता है। तकनीकी शब्दों में, मल्टीटास्किंग एक ही समय में विभिन्न कार्यों को करने के लिए एक ऑपरेटिंग सिस्टम की क्षमता को संदर्भित करता है। उदाहरण के लिए , आप अपने पीसी पर कुछ डाउनलोड कर रहे हैं और साथ ही गाने सुन रहे हैं और समवर्ती एक खेल खेल रहे हैं, इन सभी कार्यों को उसी ओएस द्वारा सिंक में किया जाता है। यह मल्टीटास्किंग के अलावा और कुछ नहीं है जो न केवल आपको समय बचाने में मदद करता है बल्कि उत्पादकता भी बढ़ाता है।

ओएस में मल्टीटास्किंग दो प्रकार के होते हैं:



मैं एक जावा प्रोग्राम कैसे संकलित करता हूं
  • प्रक्रिया-आधारित
  • धागा आधारित

इस लेख में, आप के बारे में सीखना होगा धागा आधारित मल्टीटास्किंग या बहुआयामी

एक धागा क्या है?

थ्रेड्स-मल्टीथ्रेडिंग इन पाइथन-एडुरकाएक धागा मूल रूप से एक है स्वतंत्र निष्पादन का प्रवाह। एक एकल प्रक्रिया में कई सूत्र शामिल हो सकते हैं। एक कार्यक्रम में प्रत्येक धागा एक विशेष कार्य करता है। उदाहरण के लिए, जब आप अपने पीसी पर फीफा कहते हैं कि एक गेम खेल रहे हैं, तो गेम एक पूरी प्रक्रिया है , लेकिन इसमें कई थ्रेड्स होते हैं जो संगीत को चलाने, उपयोगकर्ता से इनपुट लेने, प्रतिद्वंद्वी को समकालिक रूप से चलाने आदि के लिए जिम्मेदार होते हैं। ये सभी एक ही प्रोग्राम में इन विभिन्न कार्यों को करने के लिए जिम्मेदार अलग-अलग थ्रेड हैं।

हर प्रक्रिया में एक धागा होता है जो हमेशा चलता रहता है। यह मुख्य धागा है। यह मुख्य धागा वास्तव में बच्चे के थ्रेड ऑब्जेक्ट बनाता है। बच्चे के धागे को भी मुख्य धागे द्वारा शुरू किया जाता है। मैं आपको इस लेख में आगे दिखाऊंगा कि वर्तमान में चल रहे धागे की जांच कैसे की जाती है।

तो इसके साथ, मुझे आशा है कि आप स्पष्ट रूप से समझ गए होंगे कि एक धागा क्या है। आगे बढ़ते हुए, आइए देखें कि पायथन में मल्टीथ्रेडिंग क्या है।

पायथन में मल्टीथ्रेडिंग का उपयोग कब करें?

समय बचाने और प्रदर्शन में सुधार के लिए मल्टीथ्रेडिंग बहुत उपयोगी है, लेकिन इसे हर जगह लागू नहीं किया जा सकता है।
पिछले फीफा उदाहरण में, संगीत धागा आपके इनपुट को लेने वाले धागे से स्वतंत्र होता है और जो धागा आपका इनपुट लेता है, वह उस धागे से स्वतंत्र होता है, जो आपके प्रतिद्वंद्वी को चलाता है। ये धागे स्वतंत्र रूप से चलते हैं क्योंकि वे अंतर-निर्भर नहीं हैं।

इसलिए, मल्टीथ्रेडिंग का उपयोग केवल तभी किया जा सकता है जब व्यक्तिगत थ्रेड्स के बीच निर्भरता मौजूद न हो।

यह लेख आगे दिखाता है कि आप पायथन में मल्टीथ्रेडिंग कैसे प्राप्त कर सकते हैं।

पायथन में मल्टीथ्रेडिंग कैसे प्राप्त करें?

पायथन में मल्टीथ्रेडिंग को आयात करके प्राप्त किया जा सकता है फैल रहा है मापांक।

इस मॉड्यूल को आयात करने से पहले, आपको इसे इंस्टॉल करना होगा। अपने एनाकोंडा वातावरण पर इसे स्थापित करने के लिए, अपने एनाकोंडा प्रॉम्प्ट पर निम्नलिखित कमांड निष्पादित करें:

conda install -c कोंडा-फोर्ज tbb

इसके सफलतापूर्वक स्थापित होने के बाद, आप थ्रेडिंग मॉड्यूल को आयात करने के लिए निम्न में से किसी भी कमांड का उपयोग कर सकते हैं:

आयात थ्रेडिंग से आयात आयात *

अब आपके पास थ्रेडिंग मॉड्यूल स्थापित है, आइए हम आगे बढ़ते हैं और पायथन में मल्टीथ्रेडिंग करते हैं।

पायथन में धागे कैसे बनाएं?


पायथन में धागे तीन तरीकों से बनाए जा सकते हैं:

  1. बिना क्लास बनाए
  2. थ्रेड क्लास का विस्तार करके
  3. धागा वर्ग का विस्तार किए बिना

बिना क्लास बनाए

पायथन में बहुआयामी एक वर्ग बनाने के बिना भी पूरा किया जा सकता है। यहाँ एक उदाहरण प्रदर्शित किया गया है:

उदाहरण:

थ्रेडिंग आयात से * प्रिंट (current_thread ()। getName ()) def mt (): प्रिंट ('चाइल्ड थ्रेड') चाइल्ड = थ्रेड (लक्ष्य = mt) चाइल्ड.स्टार्ट () प्रिंट ('थ्रेडिंग थ्रेड नेम'), current_thread ( ) .getName ())

आउटपुट:

MainThread बाल धागा निष्पादन धागा नाम: MainThread

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

अब आगे बढ़ते हैं और देखते हैं कि थ्रेड क्लास को बढ़ाकर अजगर में मल्टीथ्रेडिंग कैसे करें।

सी + + में रिट्रेसमेंट श्रृंखला

थ्रेड वर्ग का विस्तार करके:

जब थ्रेड क्लास को बढ़ाकर एक चाइल्ड क्लास बनाई जाती है, तो चाइल्ड क्लास यह दर्शाता है कि एक नया थ्रेड किसी कार्य को अंजाम दे रहा है। थ्रेड क्लास का विस्तार करते समय, चाइल्ड क्लास केवल दो तरीकों को ओवरराइड कर सकती है यानी __init __ () मेथड और रन () मेथड। इन दोनों विधियों के अलावा किसी अन्य विधि को ओवरराइड नहीं किया जा सकता है।

यहाँ एक धागा बनाने के लिए थ्रेड क्लास का विस्तार करने का एक उदाहरण दिया गया है:

उदाहरण:

आयात सूत्रण आयात समय वर्ग मिथक (थ्रेडिंग। थ्रेड): डिफ रन (सेल्फ): एक्स के लिए रेंज (7): प्रिंट ('हाय फ्रॉम चाइल्ड') ए = माइथ्रेड () ए.स्टार्ट () ए.जोइन () प्रिंट ('बाय बाय', करेंट_थ्रेड ()। GetName ())

आउटपुट:
बच्चे से हाय
बच्चे से हाय
बच्चे से हाय
बच्चे से हाय
बच्चे से हाय
बच्चे से हाय
बच्चे से हाय
मेनह्रेड से अलविदा

उपरोक्त उदाहरण से पता चलता है कि क्लास मायक्लास को थ्रेड क्लास विरासत में मिली है और चाइल्ड क्लास यानी मायक्लास रन पद्धति को पछाड़ रहा है। डिफ़ॉल्ट रूप से, किसी भी वर्ग फ़ंक्शन के पहले पैरामीटर को स्वयं होने की आवश्यकता होती है जो वर्तमान ऑब्जेक्ट का सूचक है। आउटपुट से पता चलता है कि चाइल्ड थ्रेड रन () पद्धति को निष्पादित करता है और मुख्य थ्रेड चिल्ड्स निष्पादन के पूरा होने का इंतजार करता है। यह शामिल होने () फ़ंक्शन के कारण है, जो मुख्य धागा को बच्चे के खत्म होने का इंतजार करता है।

धागे बनाने की यह विधि सबसे पसंदीदा विधि है क्योंकि इसकी मानक विधि है। लेकिन अगर आप थ्रेड क्लास को इनहेरिट या एक्सटेंड किए बिना थ्रेड बनाना चाहते हैं, तो आप इसे निम्न तरीके से कर सकते हैं।

थ्रेड क्लास को बढ़ाए बिना

थ्रेड वर्ग का विस्तार किए बिना एक धागा बनाने के लिए, आप निम्नानुसार कर सकते हैं:
उदाहरण:

थ्रेडिंग आयात से * class ex: def myfunc (self): # स्वंय के लिए आवश्यक है कि प्रथम श्रेणी के रूप में x के लिए एक श्रेणी की श्रेणी में x (7): प्रिंट ('चाइल्ड') myobj = ex () thread1 = थ्रेड (लक्ष्य) = aobj। myfunc) thread1.start () thread1.join () प्रिंट ('किया')

आउटपुट:

बच्चा
बच्चा
बच्चा
बच्चा
बच्चा
बच्चा
बच्चा
किया हुआ

बच्चा धागा myfunc निष्पादित करता है जिसके बाद मुख्य धागा अंतिम प्रिंट स्टेटमेंट निष्पादित करता है।

थ्रेडिंग के उपयोग के लाभ

मल्टीथ्रेडिंग के कई फायदे हैं जिनमें से कुछ इस प्रकार हैं:

  • संसाधनों का बेहतर उपयोग
  • कोड को सरल करता है
  • विभिन्न कार्यों के समवर्ती और समानांतर घटना की अनुमति देता है
  • समय की खपत या प्रतिक्रिया समय को कम करता है, जिससे प्रदर्शन में वृद्धि होती है।

यहां एक उदाहरण दिया गया है कि एक कोड को अजगर में बहुपरत के साथ और उसके बिना निष्पादित करने में कितना समय लगता है:

 उदाहरण: 
आयात समय डीईएफ़ sqr (n): x in n: time.sleep (1) x% 2 डीईई क्यूब (n): x in n: time.sleep (1) x% 3 n = [1,2,3] , 4,5,6,7,8] s = time.time () sqr (n) क्यूब (n) e = time.time () प्रिंट (es)

आउटपुट:

16.042309284210205

उपरोक्त थ्रेड का उपयोग किए बिना प्रोग्राम को निष्पादित करने के लिए लिया गया आउटपुट समय है। अब हम धागे का उपयोग करते हैं और देखते हैं कि एक ही कार्यक्रम में क्या होता है:

उदाहरण:

आयात थ्रेडिंग से आयात करना * आयात समय डीईएफ़ सेक्रर (n): x के लिए n: time.sleep (1) प्रिंट ('2 से विभाजित होने के बाद शेष, x% 2) डीब क्यूब (n): x in n में: time.sleep (1) प्रिंट ('3 से विभाजित होने के बाद शेष, x% 3) n = [1,2,3,4,5,6,7,8] प्रारंभ = time.time () t1 = थ्रेड ( लक्ष्य = sqr, args = (n,)) t2 = धागा (लक्ष्य = घन, args = (n,)) t1.start () time.sleep (1) t2.start () t1 .join () t2.join () एंड = टाइम.टाइम () प्रिंट (एंड-स्टार्ट)
आउटपुट: 9.040220737457275

उपरोक्त आउटपुट स्पष्ट रूप से दिखाता है कि जब हम थ्रेड का उपयोग करते हैं तो उसी कार्यक्रम के लिए थ्रेड का उपयोग किए बिना निष्पादित करने के लिए लिए गए समय की तुलना में थ्रेड का उपयोग बहुत कम होता है।

php print_r to string

मुझे उम्मीद है कि आप पायथन में मल्टीथ्रेडिंग से संबंधित इस लेख के तहत आने वाली अवधारणाओं के साथ स्पष्ट हैं। जितना संभव हो उतना अभ्यास करना सुनिश्चित करें क्योंकि यह प्रोग्रामिंग में उपयोग की जाने वाली सबसे महत्वपूर्ण अवधारणाओं में से एक है।

क्या आप हमसे कोई प्रश्न पूछना चाहते हैं? कृपया इसे 'पायथन में मल्टीथ्रेडिंग' ब्लॉग के टिप्पणियों अनुभाग में उल्लेख करें और हम मर्जी जितनी जल्दी हो सके आप वापस आ जाओ।

अपने विभिन्न अनुप्रयोगों के साथ अजगर पर गहराई से ज्ञान प्राप्त करने के लिए, आप लाइव के लिए नामांकन कर सकते हैं 24/7 समर्थन और आजीवन पहुंच के साथ।