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

पायथन में थ्रेड-आधारित समानांतरता


कंप्यूटर विज्ञान में एक थ्रेड निर्देशों का एक समूह है जिसे एक शेड्यूलर द्वारा स्वतंत्र रूप से प्रबंधित किया जा सकता है, जो ऑपरेटिंग सिस्टम का एक हिस्सा है।

थ्रेडिंग का मुख्य कार्य एक ही समय में कई थ्रेड चलाना है। थ्रेड का अर्थ है प्रोग्राम में अलग-अलग कार्य, फ़ंक्शन कॉल और एक ही समय में कई थ्रेड चलाने का मतलब यह नहीं है कि वे अलग-अलग मशीनों पर निष्पादित होते हैं।

मल्टी-थ्रेडिंग का उपयोग दो मामलों में किया जाता है।

  • जब उप-प्रोग्राम के आउटपुट को मुख्य प्रोग्राम के साथ जोड़ने की आवश्यकता होती है।
  • जब मुख्य प्रोग्राम में कोड के टुकड़े होते हैं जो एक दूसरे से अपेक्षाकृत स्वतंत्र होते हैं।

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

पायथन थ्रेडिंग मॉड्यूल प्रदान करता है जो बहुत शक्तिशाली है और थ्रेड्स के लिए उच्च-स्तरीय समर्थन भी प्रदान करता है।

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

  • threading.active_count() - वर्तमान में जीवित Thread ऑब्जेक्ट्स की संख्या लौटाता है।
  • threading.current_thread() - वर्तमान Thread ऑब्जेक्ट लौटाता है।
  • threading.get_ident() - वर्तमान थ्रेड का 'थ्रेड पहचानकर्ता' लौटाता है।
  • threading.enumerate() - वर्तमान में जीवित सभी Thread ऑब्जेक्ट्स की सूची लौटाता है।
  • threading.main_thread() - मुख्य Thread ऑब्जेक्ट लौटाता है।
  • threading.settrace(func) - सभी थ्रेड्स के लिए ट्रेस फ़ंक्शन सेट करता है।
  • threading.setprofile(func) - सभी थ्रेड्स के लिए प्रोफ़ाइल फ़ंक्शन सेट करता है।
  • threading.stack_size([size]) - थ्रेड स्टैक का आकार लौटाता है।
  • threading.TIMEOUT_MAX - ब्लॉकिंग फ़ंक्शन्स के टाइमआउट पैरामीटर के लिए अधिकतम मान।

उदाहरण कोड

import threading
def trace_function():
    print("Passing the trace function")
    def profile():
        print("PROFILE THREAD: " + str(threading.current_thread().getName()))
    class mythread(threading.Thread):
        def __init__(self, thread_name, thread_ID):
            threading.Thread.__init__(self)
            self.thread_name = thread_name
            self.thread_ID = thread_ID
        def run(self):
            print(str(self.thread_ID))
            print("ACTIVE THREADS ARE: " + str(threading.active_count()))
            print("CURRENT THREAD IS: " + str(threading.current_thread().getName()))
    my_thread1 = mythread("PP", 500)
    my_thread2 = mythread("PythonProgram", 1000)
    print("NAME OF THE MAIN THREAD: " + str(threading.main_thread().getName()))
    print("IDENTIFICATION OF MAIN THREAD: " + str(threading.get_ident()))
    print("STACK SIZE = " + str(threading.stack_size()))
    print(threading.settrace(trace_function()))
    threading.setprofile(profile())
    my_thread1.start()
    my_thread2.start()
    print("LIST OF ENUMERATION: ")
    print(threading.enumerate())
    print("EXIT")

आउटपुट

NAME OF THE MAIN THREAD: MainThread
IDENTIFICATION OF MAIN THREAD: 5436
STACK SIZE = 0
Passing the trace function
None
PROFILE THREAD: MainThread
500
1000
LIST OF ENUMERATION:
ACTIVE THREADS ARE: 6
[<_MainThread(MainThread, started 5436)>, <Thread(Thread-4, started daemon 1960)>, <Heartbeat(Thread-5, started daemon 6452)>, <HistorySavingThread(IPythonHistorySavingThread, started 4304)>, <mythread(Thread-8, started 8460)>, <mythread(Thread-9, started 4668)>]
EXIT
CURRENT THREAD IS: Thread-8
ACTIVE THREADS ARE: 5
CURRENT THREAD IS: Thread-9

  1. - C# में थ्रेड-आधारित समानांतरता

    C# में, टास्क समानांतरता कार्यों को विभाजित करती है। कार्य तब प्रसंस्करण के लिए अलग-अलग थ्रेड्स को आवंटित किए जाते हैं। .NET में, आपके पास समानांतर में कोड चलाने के लिए निम्नलिखित तंत्र हैं: Thread, ThreadPool, और Task। समानांतरता के लिए, C# में थ्रेड्स के बजाय टास्क का उपयोग करें। एक टास्क अपना स्

  1. Tkinter Python में Thread का उपयोग कैसे करें? Tkinter Python में Thread का उपयोग कैसे करें?

    Tkinter के साथ, हम Threading का उपयोग करके एक समय में multiple functions call कर सकते हैं। यह एप्लिकेशन में कुछ functions के asynchronous execution को प्रदान करता है। Python में thread का उपयोग करने के लिए, हम threading नामक module import कर सकते हैं और इसकी Thread class को subclass कर सकते हैं। अपन

  1. पायथन में issuperset() फंक्शन पायथन में issuperset() फंक्शन

    इस लेख में, हम पायथन में issuperset() और विभिन्न क्षेत्रों में इसके कार्यान्वयन के बारे में जानेंगे।यह मेथड बूलियन True वापस करता है यदि सेट B के सभी तत्व सेट A के सभी तत्वों को समाहित करते हैं जिसे तर्क के रूप में पारित किया जाता है और झूठा वापस करता है यदि A के सभी तत्व B में मौजूद नहीं हैं।इसका म