मैं जावा में मल्टीथ्रेडिंग की अवधारणा सीख रहा था जहां मैं इस बहुत ही रोचक व्यवहार में आया था। मैं धागा बनाने के विभिन्न तरीकों से प्रयोग कर रहा था। प्रश्न के तहत अब एक है जब हम Thread
का विस्तार कर रहे हैं, Runnable
इंटरफेस को लागू नहीं कर रहे हैं।जावा में दिलचस्प थ्रेड व्यवहार
एक तरफ ध्यान दें पर, मुझे पता है कि यह Runnable
इंटरफ़ेस को लागू करने के बजाय Thread
वर्ग का विस्तार करने के लिए एकदम सही OO समझ में आता है, लेकिन इस सवाल के प्रयोजनों के लिए, मान लें कि हम Thread
वर्ग बढ़ा देते हैं।
Let मेरी विस्तारित Thread
वर्ग की मेरी उदाहरण हो t
और मैं कोड का एक खंड पृष्ठभूमि है कि मेरी Thread
वर्ग की मेरी run()
विधि के भीतर लिखा है में मार डाला जाना है।
यह पूरी तरह से t.start()
के साथ पृष्ठभूमि में भाग गया, लेकिन मुझे थोड़ी उत्सुकता मिली और t.run()
विधि कहा जाता है। मुख्य धागे में निष्पादित कोड का टुकड़ा!
t.start()
क्या करता है t.run()
नहीं करता है?
अपनी कक्षा अन्य वर्ग का विस्तार कर सकते हैं मेरा मानना है कि आप अपने जवाब यहाँ मिल सकती है: //stackoverflow.com/questions/8579657/java-whats-the-difference-between-thread-start-and-runnable-run http://stackoverflow.com/questions/15841301/difference-between-running-and स्टार्टिंग-ए-थ्रेड –
http: // stackoverflow।कॉम/ए/13134221/3436 9 42 आपको आसान - पर्याप्त भाषा में अंतर बताता है। बहुत अधिक ** t.start(); ** एक नया धागा बना रहा है/बना रहा है जबकि ** t.run(); ** इसे केवल मुख्य थ्रेड – jbutler483