Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

जावा में wait() और sleep() मेथड में अंतर?


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

  1. - जावा में Collection और Collections में अंतर?

    Collection एक इंटरफेस है जबकि Collections जावा में एक यूटिलिटी क्लास है। Set, List, और Queue Collection इंटरफेस के कुछ सबइंटरफेस हैं, एक Map इंटरफेस भी Collections फ्रेमवर्क का हिस्सा है, लेकिन यह Collection इंटरफेस को इनहेरिट नहीं करता। Collection इंटरफेस के महत्वपूर्ण मेथड्स हैं add(), remove(),

  1. Java में paint() विधि और repaint() विधि के बीच क्या अंतर हैं? Java में paint() विधि और repaint() विधि के बीच क्या अंतर हैं?

    Paint() और Repaint() paint(): इस विधि में इस घटक को पेंट करने के निर्देश होते हैं। Java Swing में, हम paint() विधि के बजाय paintComponent() विधि को बदल सकते हैं क्योंकि paint paintBorder(), paintComponent() और paintChildren() विधियों को कॉल करता है। हम इस विधि को सीधे नहीं बुला सकते, इसके बजाय हम

  1. - Java में printStackTrace() और getMessage() मेथड में क्या अंतर है?

    Java में किसी अपवाद (Exception) की डिटेल्स जानने के दो मुख्य तरीके हैं: printStackTrace() मेथड और getMessage() मेथड। दोनों का उपयोग अलग-अलग परिस्थितियों में किया जाता है। printStackTrace() मेथड यह मेथड java.lang.Throwable क्लास में परिभाषित है और java.lang.Error तथा java.lang.Exception क्लास में