पायथन 2.4 के साथ शामिल नया थ्रेडिंग मॉड्यूल पिछले अनुभाग में चर्चा किए गए थ्रेड मॉड्यूल की तुलना में थ्रेड्स के लिए अधिक शक्तिशाली, उच्च-स्तरीय समर्थन प्रदान करता है।
थ्रेडिंग मॉड्यूल थ्रेड मॉड्यूल के सभी तरीकों को उजागर करता है और कुछ अतिरिक्त तरीके प्रदान करता है -
- threading.activeCount() - सक्रिय थ्रेड ऑब्जेक्ट्स की संख्या लौटाता है।
- threading.currentThread() - कॉलर के थ्रेड कंट्रोल में थ्रेड ऑब्जेक्ट की संख्या लौटाता है।
- threading.enumerate() − उन सभी थ्रेड ऑब्जेक्ट्स की सूची देता है जो वर्तमान में सक्रिय हैं।
विधियों के अलावा, थ्रेडिंग मॉड्यूल में थ्रेड क्लास होता है जो थ्रेडिंग को लागू करता है। थ्रेड क्लास द्वारा प्रदान की जाने वाली विधियाँ इस प्रकार हैं -
- रन() - रन () विधि एक थ्रेड के लिए प्रवेश बिंदु है।
- प्रारंभ() - स्टार्ट () मेथड रन मेथड को कॉल करके थ्रेड शुरू करता है।
- शामिल हों([समय]) - ज्वाइन () थ्रेड्स के समाप्त होने की प्रतीक्षा करता है।
- isAlive() - isAlive() विधि यह जांचती है कि कोई थ्रेड अभी भी निष्पादित हो रहा है या नहीं।
- getName() - getName () विधि थ्रेड का नाम लौटाती है।
- सेटनाम() -सेटनाम () विधि एक धागे का नाम निर्धारित करती है।
थ्रेडिंग मॉड्यूल का उपयोग करके थ्रेड बनाना
थ्रेडिंग मॉड्यूल का उपयोग करके एक नया थ्रेड लागू करने के लिए, आपको निम्न कार्य करने होंगे -
- थ्रेड वर्ग के एक नए उपवर्ग को परिभाषित करें।
- अतिरिक्त तर्क जोड़ने के लिए __init__(self [,args]) विधि को ओवरराइड करें।
- फिर, रन (स्वयं [, args]) विधि को ओवरराइड करें ताकि यह लागू किया जा सके कि थ्रेड को प्रारंभ होने पर क्या करना चाहिए।
एक बार जब आप नया थ्रेड उपवर्ग बना लेते हैं, तो आप इसका एक उदाहरण बना सकते हैं और फिर प्रारंभ () को लागू करके एक नया धागा शुरू कर सकते हैं, जो बदले में रन () विधि को कॉल करता है।
उदाहरण
#!/usr/bin/pythonimport threadingimport timeexitFlag =0class myThread (थ्रेडिंग.थ्रेड):def __init__(self, threadID, name, काउंटर):थ्रेडिंग.थ्रेड.__init__(self) self.threadID =threadID self.name =नाम सेल्फ.काउंटर =काउंटर डिफ रन (सेल्फ):प्रिंट "स्टार्टिंग" + सेल्फ.नाम प्रिंट_टाइम (सेल्फ.नाम, 5, सेल्फ.काउंटर) प्रिंट "एग्जिटिंग" + सेल्फ.नेमडेफ प्रिंट_टाइम (थ्रेडनाम, काउंटर, डिले):काउंटर के दौरान:अगर एग्जिटफ्लैग:थ्रेडनाम.एक्सिट () टाइम.स्लीप (देरी) प्रिंट "%s:%s"% (थ्रेडनाम, टाइम.सीटाइम (टाइम.टाइम ())) काउंटर - =1 # नया थ्रेड थ्रेड 1 बनाएं =माय थ्रेड (1, "थ्रेड-1", 1)थ्रेड2 =मायथ्रेड(2, "थ्रेड-2", 2)# नया थ्रेड शुरू करें।जब उपरोक्त कोड निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
थ्रेड-1 प्रारंभ करना थ्रेड-2 को प्रारंभ करना मुख्य थ्रेड से बाहर निकलना थ्रेड-1:गुरु मार्च 21 09:10:03 2013थ्रेड-1:गुरु मार्च 21 09:10:04 2013थ्रेड-2:गुरु मार्च 21 09:10:04 2013थ्रेड-1 :गुरु मार्च 21 09:10:05 2013थ्रेड-1:गुरु मार्च 21 09:10:06 2013थ्रेड-2:गुरु मार्च 21 09:10:06 2013थ्रेड-1:गुरु मार्च 21 09:10:07 2013 थ्रेड-1 से बाहर निकलना- 2:गुरु मार्च 21 09:10:08 2013थ्रेड-2:गुरु मार्च 21 09:10:10 2013थ्रेड-2:गुरु मार्च 21 09:10:12 2013थ्रेड-2 से बाहर निकलना