अधिसूचना के साथ थ्रेड समापन सुनिश्चित करना
मल्टीथ्रेडेड अनुप्रयोगों में, उचित निष्पादन सुनिश्चित करने के लिए थ्रेड की पूर्णता स्थिति की निगरानी करना महत्वपूर्ण है। जब थ्रेड्स का निष्पादन समाप्त हो जाता है तो यह आलेख सूचनाएं प्राप्त करने के लिए विभिन्न तरीकों की खोज करता है। ], जो मुख्य थ्रेड को तब तक ब्लॉक करता है जब तक कि सभी निर्दिष्ट थ्रेड पूरे नहीं हो जाते। प्रभावी होते हुए भी, यह अतुल्यकालिक परिदृश्यों के लिए हमेशा वांछनीय नहीं हो सकता है। मुद्दे।
कस्टम अधिसूचना तंत्र
अपरंपरागत दृष्टिकोण में सेटिंग शामिल है अनकहा अपवाद हैंडलर या लॉक और सिंक्रोनाइज़र का उपयोग करना। हालाँकि, ये तरीके जटिल हो सकते हैं और त्रुटियों की संभावना हो सकती है।
श्रोता-आधारित अधिसूचना
एक अधिक संरचित समाधान एक श्रोता इंटरफ़ेस बनाना और प्रत्येक थ्रेड से इसे सूचित करना है पूरा होने पर। इसमें ThreadCompleteListener जैसा एक इंटरफ़ेस और
NotifyingThreadजैसा एक वर्ग बनाना शामिल है जो Thread से विस्तारित होता है और पूरा होने पर श्रोताओं को सूचित करता है।
मुख्य वर्ग ThreadCompleteListener को कार्यान्वित कर सकता है और थ्रेड की सूचनाएं प्राप्त करने के लिए स्वयं को प्रत्येक थ्रेड में श्रोता के रूप में जोड़ सकता है समापन।
उदाहरण कार्यान्वयननीचे श्रोता-आधारित दृष्टिकोण का एक उदाहरण कार्यान्वयन है:सार्वजनिक इंटरफ़ेस ThreadCompleteListener { void notifyOfThreadComplete(अंतिम थ्रेड थ्रेड); } सार्वजनिक सार वर्ग नोटिफ़ाइंगथ्रेड थ्रेड का विस्तार करता है { // श्रोता प्रबंधन ... // श्रोताओं को सूचित करें ... @ओवरराइड सार्वजनिक अंतिम शून्य रन() { कोशिश { doRun(); } अंत में { सूचित करें श्रोता(); } } सार्वजनिक सार शून्य doRun(); }
मुख्य कक्षा में उपयोग
NotifyingThread thread1 = new OneOfYourThreads(); thread1.addListener(यह); // खुद को एक श्रोता के रूप में जोड़ें thread1.start(); // थ्रेड प्रारंभ करेंयह दृष्टिकोण थ्रेड पूर्णता को प्रबंधित करने और समय पर सूचनाएं प्राप्त करने का एक लचीला और संरचित तरीका प्रदान करता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3