对象的notify()和notifyAll()区别

来源:互联网 发布:win10笔记本电脑优化 编辑:程序博客网 时间:2024/05/20 06:07

wait()会让线程挂起,直到通知到它继续执行!挂起的线程会存放到等待队列中,按照wait的先后顺序存放。

notify()通知等待队列中的第一个线程,notifyAll()通知的是等待队列中的所有线程

举例:

class Lock{    public synchronized  void notifyOne(){        this.notify();    }    public synchronized  void notifyEveryOne(){        this.notifyAll();    }}


挂起线程例子:

class Task implements Runnable{       private Lock lock;     public Task(Lock lock){           this.lock = lock;     }     public void run(){           synchronized(lock){                 lock.wait();           }     }}


 

原创粉丝点击