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

पायथन में थ्रेडिंग मॉड्यूल


पायथन 2.4 के साथ शामिल नया थ्रेडिंग मॉड्यूल, पिछले अनुभाग में चर्चा किए गए थ्रेड मॉड्यूल की तुलना में थ्रेड्स के लिए अधिक शक्तिशाली, उच्च-स्तरीय समर्थन प्रदान करता है।

थ्रेडिंग मॉड्यूल थ्रेड मॉड्यूल के सभी तरीकों को उजागर करता है और कुछ अतिरिक्त विधियां प्रदान करता है -

  • threading.activeCount() - सक्रिय थ्रेड ऑब्जेक्ट्स की संख्या लौटाता है।
  • threading.currentThread() - कॉलर के थ्रेड कंट्रोल में थ्रेड ऑब्जेक्ट्स की संख्या लौटाता है।
  • threading.enumerate() - वर्तमान में सक्रिय सभी थ्रेड ऑब्जेक्ट्स की सूची लौटाता है।

विधियों के अलावा, थ्रेडिंग मॉड्यूल में Thread क्लास है जो थ्रेडिंग को लागू करता है। Thread क्लास द्वारा प्रदान की गई विधियां निम्नानुसार हैं -

  • run() - run() विधि एक थ्रेड के लिए प्रवेश बिंदु है।
  • start() - start() विधि run विधि को कॉल करके एक थ्रेड शुरू करती है।
  • join([time]) - join() थ्रेड्स के समाप्त होने की प्रतीक्षा करता है।
  • isAlive() - isAlive() विधि जांचती है कि क्या एक थ्रेड अभी भी निष्पादित हो रहा है।
  • getName() - getName() विधि एक थ्रेड का नाम लौटाती है।
  • setName() - setName() विधि एक थ्रेड का नाम सेट करती है।

थ्रेडिंग मॉड्यूल का उपयोग करके थ्रेड बनाना

थ्रेडिंग मॉड्यूल का उपयोग करके एक नया थ्रेड लागू करने के लिए, आपको निम्नलिखित करना होगा -

  • Thread क्लास का एक नया सबक्लास परिभाषित करें।
  • अतिरिक्त आर्गुमेंट्स जोड़ने के लिए __init__(self [,args]) विधि को ओवरराइड करें।
  • फिर, run(self [,args]) विधि को ओवरराइड करें ताकि यह लागू किया जा सके कि थ्रेड शुरू होने पर क्या करना चाहिए।

एक बार जब आप नया Thread सबक्लास बना लेते हैं, तो आप इसका एक इंस्टेंस बना सकते हैं और फिर start() को आमंत्रित करके एक नया थ्रेड शुरू कर सकते हैं, जो बदले में run() विधि को कॉल करता है।

उदाहरण

#!/usr/bin/python import threading import time exitFlag = 0 class myThread (threading.Thread):    def __init__(self, threadID, name, counter):       threading.Thread.__init__(self)       self.threadID = threadID       self.name = name       self.counter = counter    def run(self):       print "Starting " + self.name       print_time(self.name, 5, self.counter)       print "Exiting " + self.name def print_time(threadName, counter, delay):    while counter:       if exitFlag:          threadName.exit()       time.sleep(delay)       print "%s: %s" % (threadName, time.ctime(time.time()))       counter -= 1 # नए थ्रेड बनाएं thread1 = myThread(1, "Thread-1", 1) thread2 = myThread(2, "Thread-2", 2) # नए थ्रेड शुरू करें thread1.start() thread2.start() print "Exiting Main Thread"

जब उपरोक्त कोड निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम देता है -

Starting Thread-1 Starting Thread-2 Exiting Main Thread Thread-1: Thu Mar 21 09:10:03 2013 Thread-1: Thu Mar 21 09:10:04 2013 Thread-2: Thu Mar 21 09:10:04 2013 Thread-1: Thu Mar 21 09:10:05 2013 Thread-1: Thu Mar 21 09:10:06 2013 Thread-2: Thu Mar 21 09:10:06 2013 Thread-1: Thu Mar 21 09:10:07 2013 Exiting Thread-1 Thread-2: Thu Mar 21 09:10:08 2013 Thread-2: Thu Mar 21 09:10:10 2013 Thread-2: Thu Mar 21 09:10:12 2013 Exiting Thread-2

  1. Python में pydoc मॉड्यूल का उपयोग करके डॉक्यूमेंटेशन जनरेशन Python में pydoc मॉड्यूल का उपयोग करके डॉक्यूमेंटेशन जनरेशन

    परिचय pydoc मॉड्यूल Python मॉड्यूल्स से स्वचालित रूप से डॉक्यूमेंटेशन जनरेट करता है। डॉक्यूमेंटेशन को कंसोल पर टेक्स्ट के पेजों के रूप में सहेजा जा सकता है, वेब ब्राउज़र पर प्रदर्शित किया जा सकता है, या HTML फाइलों के रूप में भी। इस लेख में आप इन डॉक्यूमेंटेशन को विभिन्न मामलों में देखने के मेथड्स

  1. पायथन getpass मॉड्यूल पायथन getpass मॉड्यूल

    पायथन की स्टैंडर्ड लाइब्रेरी के getpass मॉड्यूल में दो फ़ंक्शन्स परिभाषित हैं। वे तब उपयोगी होते हैं जब भी टर्मिनल-आधारित एप्लिकेशन को यूजर क्रेडेंशियल्स मान्य करने के बाद ही एक्ज़ीक्यूट करने की आवश्यकता होती है। getpass() यह फ़ंक्शन यूजर को पासवर्ड दर्ज करने के लिए प्रेरित करता है। डिफ़ॉल्ट रूप से

  1. - Python में from...import * Statement का क्या उपयोग है?

    from module import * Statement from module import * Statement का उपयोग Python Module से सभी Functions Import करने के लिए किया जाता है। उदाहरण यदि आप math Module से सभी Functions Import करना चाहते हैं और उन्हें Call करते समय math. Prefix नहीं करना चाहते, तो आप इसे निम्न प्रकार से कर सकते हैं: >&