java-线程间的通信

wait、notify、notifyAll

何时使用

  • 在多线程环境下,有时候一个线程的执行,依赖于另外一个线程的某种状态的改变,这个时候,我们就可以使用wait与notify或者notifyAll

wait跟sleep的区别

  • wait会释放持有的锁,而sleep不会,sleep只是让线程在指定的时间内,不去抢占cpu的资源

notify跟notifyAll的区别

  • nofity随机唤醒一个等待的线程
  • notifyAll唤醒所有在该对象上等待的线程

代码:

结果:

 等待通知经典模型之生产者消费者

库存类:

生产者类:

消费者:

主控类:

 

源代码地址:https://github.com/woxbwo/is-concurrent 

完成!!!

 

 

 

猜你喜欢

转载自www.cnblogs.com/woxbwo/p/11450751.html