एक थ्रेड ऑब्जेक्ट की सीधी कॉल रन() विधि एक अलग थ्रेड शुरू नहीं करता है और इसे वर्तमान धागे के भीतर निष्पादित किया जा सकता है। निष्पादित करने के लिए Runnable.run एक अलग थ्रेड के भीतर से, निम्न में से कोई एक कार्य करें
- चलाने योग्य . का उपयोग करके एक थ्रेड बनाएं ऑब्जेक्ट करें और कॉल करें प्रारंभ() थ्रेड पर विधि।
- थ्रेड ऑब्जेक्ट के उपवर्ग को परिभाषित करें और इसकी run() की परिभाषा को ओवरराइड करें तरीका। फिर इस उपवर्ग का एक उदाहरण बनाएं और प्रारंभ () . पर कॉल करें उस उदाहरण पर सीधे विधि।
उदाहरण
public class ThreadRunMethodTest { public static void main(String args[]) { MyThread runnable = new MyThread(); runnable.run(); // Call to run() method does not start a separate thread System.out.println("Main Thread"); } } class MyThread extends Thread { public void run() { try { Thread.sleep(1000); } catch (InterruptedException e) { System.out.println("Child Thread interrupted."); } System.out.println("Child Thread"); } }
उपरोक्त उदाहरण में, मुख्य धागा, ThreadRunMethodTest , चाइल्ड थ्रेड को कॉल करता है, MyThread रन () विधि का उपयोग करके। यह शेष मुख्य थ्रेड के निष्पादित होने से पहले चाइल्ड थ्रेड को पूरा करने के लिए चलाता है, ताकि "चाइल्ड थ्रेड "मुख्य सूत्र . से पहले मुद्रित होता है ".
आउटपुट
Child Thread Main Thread