কম্পিউটার টিউটোরিয়াল

জাভাতে wait() এবং sleep() মেথডের পার্থক্য


sleep() মেথড হল Thread ক্লাসের একটি স্ট্যাটিক মেথড এবং এটি বর্তমান রানিং থ্রেডকে "Non-Runnable" স্টেটে পাঠাতে পারে, যেখানে 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("Number in methodOne(): " + number); 
        } 
    } 
    
    public void methodTwo() throws Exception { 
        synchronized(this) { 
            Thread.sleep(2000); // sleep() মেথড কল 
            this.wait(1000); // wait() মেথড কল 
            number *= 75; 
            System.out.println("Number in 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(); 
    } 
}

আউটপুট

Number in methodOne(): 60 Number in methodTwo(): 4500

  1. জাভাতে wait() এবং sleep()-এর পার্থক্য

  2. জাভাতে Collection এবং Collections-এর পার্থক্য

  3. জাভাতে paint() মেথড এবং repaint() মেথড-এর মধ্যে পার্থক্য কী?

  4. জাভাতে printStackTrace() এবং getMessage() মেথডের মধ্যে পার্থক্য