कंप्यूटर विज्ञान में एक धागा निर्देशों का एक समूह है जिसे एक अनुसूचक द्वारा स्वतंत्र रूप से प्रबंधित किया जा सकता है, जो ऑपरेटिंग सिस्टम का एक हिस्सा है।
थ्रेडिंग का मुख्य कार्य एक समय में कई थ्रेड चलाना है। थ्रेड्स का अर्थ है अलग-अलग कार्य, प्रोग्राम में फ़ंक्शन कॉल और एक ही समय में कई थ्रेड्स चलते हैं, जिसका अर्थ यह नहीं है कि उन्हें विभिन्न मशीनों पर निष्पादित किया जाता है।
मल्टी-थ्रेडिंग का उपयोग दो मामलों में किया जाता है।
-
जब उप-कार्यक्रमों के आउटपुट को मुख्य कार्यक्रम के साथ संयोजित करने की आवश्यकता होती है।
-
जब मुख्य प्रोग्राम में कोड का टुकड़ा होता है जो एक दूसरे से अपेक्षाकृत स्वतंत्र होते हैं।
थ्रेडिंग मॉड्यूल
पायथन थ्रेडिंग मॉड्यूल प्रदान करता है जो बहुत शक्तिशाली है और थ्रेड्स के लिए उच्च स्तरीय समर्थन भी प्रदान करता है।
थ्रेडिंग मॉड्यूल बहुत सारे कार्यों को परिभाषित करता है जिनका उपयोग थ्रेड से संबंधित डेटा प्राप्त करने के लिए किया जाता है और इन कार्यों को स्वचालित रूप से निष्पादित किया जाता है।
threading.active_count()
यह फ़ंक्शन वर्तमान में जीवित थ्रेड ऑब्जेक्ट्स की संख्या देता है। यहां लौटाई गई गिनती एन्यूमरेट () द्वारा लौटाई गई सूची की लंबाई के बराबर है।
threading.current_thread()
यह फ़ंक्शन वर्तमान थ्रेड ऑब्जेक्ट देता है और यह कॉलर के नियंत्रण के थ्रेड के अनुरूप होता है।
threading.get_ident()
यह फ़ंक्शन वर्तमान थ्रेड का 'थ्रेड आइडेंटिफ़ायर' लौटाता है। यह एक शून्येतर पूर्णांक है।
threading.enumerate()
यह फ़ंक्शन वर्तमान में जीवित सभी थ्रेड ऑब्जेक्ट्स की एक सूची देता है जिसमें डेमोनिक थ्रेड्स शामिल हैं, current_thread() फ़ंक्शन एक डमी थ्रेड और मुख्य थ्रेड बनाता है और समाप्त किए गए थ्रेड्स और थ्रेड्स को बाहर करता है जो अभी तक शुरू नहीं हुए हैं।
थ्रेडिंग.मेन_थ्रेड ()
यह फ़ंक्शन मुख्य थ्रेड ऑब्जेक्ट देता है।
थ्रेडिंग.सेटट्रेस(func)
जब सभी थ्रेड्स थ्रेडिंग मॉड्यूल से प्रारंभ होते हैं, तो ट्रेस फ़ंक्शन सेट करें। रन () विधि को कॉल करने से पहले, यह फ़ंक्शन प्रत्येक थ्रेड के लिए sys.settrace () को पास कर दिया जाता है।
threading.setprofile(func)
जब सभी थ्रेड्स थ्रेडिंग मॉड्यूल से प्रारंभ होते हैं, तो प्रोफ़ाइल फ़ंक्शन सेट करें। रन () विधि को कॉल करने से पहले, यह फ़ंक्शन प्रत्येक थ्रेड के लिए sys.setprofile() को पास कर दिया जाता है।
threading.stack_size([size])
यह फ़ंक्शन थ्रेड स्टैक का आकार लौटाता है और इसका उपयोग नए थ्रेड बनाते समय किया जाता है।
थ्रेडिंग.TIMEOUT_MAX
यह एक स्थिरांक है जिसमें ब्लॉकिंग फ़ंक्शंस के टाइमआउट पैरामीटर के लिए अधिकतम मान की अनुमति है (Lock.acquire(), RLock.acquire(), condition.wait(), आदि)।
उदाहरण कोड
आयात करें ):डीईएफ़ __init__ (स्वयं, थ्रेड_नाम, थ्रेड_आईडी):थ्रेडिंग। थ्रेड। प्रिंट ("सक्रिय थ्रेड हैं:" + str (थ्रेडिंग.एक्टिव_काउंट ())) प्रिंट ("वर्तमान थ्रेड है:" + str (थ्रेडिंग.करंट_थ्रेड ()। getName ())) my_thread1 =मिथ्रेड ("पीपी", 500) my_thread2 =मिथ्रेड ("पायथनप्रोग्राम", 1000); प्रिंट ("मुख्य थ्रेड का नाम:" + str (थ्रेडिंग.मेन_थ्रेड ()। getName ())) प्रिंट ("मुख्य थ्रेड की पहचान:" + str (थ्रेडिंग। get_ident ())) प्रिंट ("स्टैक आकार =" + str (थ्रेडिंग.स्टैक_साइज ())) प्रिंट (थ्रेडिंग.सेटट्रेस (ट्रेस_फंक्शन ())) थ्रेडिंग। threading.enumerate())print("EXIT")आउटपुट
मुख्य थ्रेड का नाम:मुख्य थ्रेड का मुख्य थ्रेड पहचान:5436स्टैक आकार =0 ट्रेस फ़ंक्शन पास करनाकोई भी प्रोफ़ाइल थ्रेड:MainThread5001000ENUMERATION की सूची:सक्रिय थ्रेड हैं:6[<_MainThread(MainThread, प्रारंभ 5436)>, डेमॉन 1960 शुरू किया)>, <हार्टबीट (थ्रेड -5, डेमन 6452 शुरू किया)>, <इतिहास सेविंग थ्रेड (आईपीथॉन हिस्ट्री सेविंग थ्रेड, 4304 शुरू हुआ)>,, ]निकास थ्रेड है:थ्रेड-8सक्रिय थ्रेड हैं:5करंट थ्रेड है:थ्रेड-9