原文作者:tom有了cat
一个线程修改了一个对象的值,而另一个线程感知了变化,然后进行了相应的操作,整个过程开始于一个线程,结束于另一个线程。前者是生产者,后者是消费者,这种模式在功能层面上实现了解耦。有下面一段代码,大家可以根据执行的结果和注释很清晰的明确这个wait和notify的工作机制,wait等待释放锁。代码如下,不再做具体描述:
package juc.waitsleep;
/**
* @Description 测试notify和wait机制
* @Author DJZ-WWS
* @Date 2019/5/15 11:44
*/
public class WaitNotify {
static Object lock=new Object();
static boolean flag=true;
/**
* 整个的一个执行流程wait线程先执行,执行到wait方法进行等待,进入等待队列,这时候释放锁,主线程休眠,
* notify线程还没有开始进行工作,主线程休眠以后notify开始工作,由于wait已经将锁释放,所以notify会握住锁,
* 执行了notify的业务以后将wait线程唤醒&#

本文深入分析了Java并发编程中的等待通知机制wait/notify,通过实例展示了线程间的交互过程,解释了wait、notify的工作原理,包括线程状态的变化以及同步队列与等待队列的概念。强调了wait、notify的使用顺序和加锁的重要性,并提供了相关注意事项。
最低0.47元/天 解锁文章

195

被折叠的 条评论
为什么被折叠?



