जहां तक मेरा java.lang.Thread
डॉक्स से, और "How to access a Runnable object by Thread?" और "Get current instance of Runnable" की तरह अन्य प्रश्न यहाँ stackoverflow पर तैनात से, समझ सकते हैं यह संभव नहीं Runnable
वस्तु एक Thread
में एम्बेडेड के लिए एक संदर्भ पाने के लिए है।थ्रेड में चलने योग्य रननेबल क्यों संभव नहीं है?
एक परिदृश्य जहां यह संभावना उपयोगी होगी, एक विधि को कार्यान्वित करते समय, जिसका हस्ताक्षर संशोधित नहीं किया जा सकता है क्योंकि हम किसी अन्य वर्ग या इंटरफ़ेस में परिभाषित विधि को ओवरराइड कर रहे हैं, और विभिन्न संचालन के आधार पर किया जाना चाहिए वर्तमान Thread
में एम्बेडेड Runnable
का प्रकार।
अगर हम उदाहरण के लिए था एक विधि Thread
कक्षा में getRunnable
कहा जाता है हम कुछ इस तरह कर सकता है:
if (Thread.currentThread().getRunnable() instanceof Type1) {
// do something...
} else {
// do something else...
}
यह उन परिस्थितियों में भी उपयोगी हो सकता है जब हम एक विधि में निहित संचालन कर रहे हैं सुनिश्चित करना चाहते हैं केवल कुछ धागे द्वारा निष्पादित और दूसरों द्वारा नहीं।
तो मैं सोच रहा था, क्या जावा डेवलपर्स ने से Runnable
उदाहरण प्राप्त करने की अनुमति देने का कोई विशिष्ट कारण नहीं है, या क्या यह एक लापता विशेषता है जिसे अधिसूचित किया जा सकता है? अगर आपको लगता है कि उस विकल्प के पीछे कोई कारण नहीं है लेकिन इसे अनुपलब्ध फीचर के रूप में सूचित करने के लायक नहीं है, तो ऊपर वर्णित परिदृश्य में आप किस रणनीति का उपयोग करेंगे?
क्या 'main' विधि के साथ मुख्य थ्रेड के लिए" runnable "हो सकता है? –
@ किर्कवॉल, 'नल'? –
आपके उदाहरण में जैसे 'exampleof' के परिणाम पर ब्रांचिंग लगभग एक अच्छा विचार नहीं है। – NPE