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