sleep() मेथड Thread क्लास का एक स्टैटिक मेथड है और यह वर्तमान रनिंग थ्रेड को "नॉन-रनेबल" स्थिति में भेज सकता है जबकि wait() मेथड एक इंस्टेंस मेथड है, हम इसे थ्रेड ऑब्जेक्ट का उपयोग करके बुलाते हैं और यह केवल उस ऑब्जेक्ट के लिए प्रभावी होता है। sleep() मेथड समय समाप्त होने या interrupt() मेथड बुलाए जाने पर जागता है जबकि wait() मेथड समय समाप्त होने या notify() या notifyAll() मेथड बुलाए जाने पर जागता है। sleep() मेथड प्रतीक्षा करते समय किसी लॉक या मॉनिटर को रिलीज़ नहीं करता जबकि wait() मेथड प्रतीक्षा करते समय लॉक या मॉनिटर को रिलीज़ करता है।
sleep() मेथड के लिए सिंटैक्स
public static void sleep(long millis) throws InterruptedException
wait() मेथड के लिए सिंटैक्स
public final void wait() throws InterruptedException
उदाहरण
public class ThreadTest implements Runnable {
private int number = 10;
public void methodOne() throws Exception {
synchronized(this) {
number += 50;
System.out.println("methodOne() में संख्या: " + number);
}
}
public void methodTwo() throws Exception {
synchronized(this) {
Thread.sleep(2000); // sleep() मेथड बुला रहे हैं
this.wait(1000); // wait() मेथड बुला रहे हैं
number *= 75;
System.out.println("methodTwo() में संख्या: " + number);
}
}
public void run() {
try {
methodOne();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception {
ThreadTest threadTest = new ThreadTest();
Thread thread = new Thread(threadTest);
thread.start();
threadTest.methodTwo();
}
}
आउटपुट
methodOne() में संख्या: 60 methodTwo() में संख्या: 4500