Java学习(一)

Object类中的wait和notify方法

关于wait和notify方法:

  • wait和notify方法不是线程对象的方法,是Java中任何一个Java对象都有的方法
  • wait和notify方法不是通过线程对象调用,通过Java对象调用
  • wait和notify方法建立在synchronized线程同步的基础上,因为多线程同时操作一个对象,有线程安全问题

wait()方法作用:

1
2
3
4
Object obj = new Object();

// 表示让正在obj对象上活动的线程进入等待状态,无限期等待,直到被唤醒为止,并且释放之前占有的obj对象的锁
obj.wait();

notify()方法作用:

1
2
3
4
5
6
7
Object obj = new Object();

// 表示唤醒正在obj对象上等待的线程,其只会通知,不会释放之前占有的obj对象的锁
obj.notify();

// 表示唤醒obj对象上处于等待的所有线程
obj.notifyAll();

生产者模式和消费者模式

生产者模式和消费者模式是为了专门解决某个特定需求

关于生产者和消费者模式:

  • 生产线程负责生产,消费线程负责消费
  • 生产线程和消费线程要达到均衡
  • 这是一种特殊的业务需求,需要使用wait方法和notify方法