千家信息网

Java中wait()方法和notify()方法使用时的注意事项

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容主要讲解"Java中wait()方法和notify()方法使用时的注意事项",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Java中wait()方法
千家信息网最后更新 2026年11月01日Java中wait()方法和notify()方法使用时的注意事项

本篇内容主要讲解"Java中wait()方法和notify()方法使用时的注意事项",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Java中wait()方法和notify()方法使用时的注意事项"吧!

  • wait()方法和notify()方法在使用时都有一个前提条件,必须都要获取当前对象的锁。也就是说如果wait()方法和notify()方法在使用时没有获取到锁时,程序就会直接抛出异常。

我们看程序出线了异常。原因是我们没有添加synchronized关键字,所以线程获取不到锁,而直接抛出的异常。

  • wait()方法在执行完成后,会立刻释放对象的锁,这时其它线程依然可以执行wait()方法所在的synchronized同步方法。而notify()方法在执行完成后不会立即释放对象的锁,直到这个线程的synchronized同步方法执行完时才会释放锁。

我们看两个线程都暂停了,这就说明两个线程都获得了执行,原因就是上面分析的一样,wait()方法在执行完会立即释放对象的锁,所以线程一执行完时,线程二就可以直接获取到锁并执行,所以输出是异步显示的。下面我们在看一下notify()方法的事例。

我们看线程是同步执行的。原因是notify()方法在执行后不会立刻释放对象的锁,所以线程一在执行notify()方法后,线程二虽然已经启动成功,但它获取不到当前对象的锁,因为线程一还没有将锁释放,所以线程二只能等待因为方法是synchronized同步方法,所以输出信息是同步执行的。

  • wait()方法的本质是将当前线程添加到等待队列中,它不是线程的结束,因为它还可以恢复。notify()方法的本质是将等待队列中某一个线程使它退出等待队列。但如果等待队列中的线程有很多,notify()方法也只是随机抽取一个线程让它退出等待队列。

我们看线程一已经被唤醒了,然后继续执行了synchronized同步方法里的内容。

线程状态图

到此,相信大家对"Java中wait()方法和notify()方法使用时的注意事项"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

方法 线程 对象 同步 队列 事项 注意事项 内容 原因 两个 本质 程序 学习 输出 实用 更深 成功 也就是 也就是说 事例 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技互联网 新华互联网科技 甘肃拓世互联网科技有限公司 宁波青枫互联网科技有限公司 北京华百购互联网科技有限公司 互联网为啥属于高科技 本届互联网博览会上的黑科技 畅思互联网科技 浙南科技城互联网大厦建设工程 乌鲁木齐新华智原互联网科技学校 晋城互联网科技 高科技互联网发展前景如何 滨湖区互联网智能科技产品有哪些 北京市互联网新科技 福建互联网展示科技馆设计 吉林省码上互联网科技电话 众联互联网络科技 科技互联网专业工作会议发言稿 科技互联网专业务虚会材料 武汉亿视互联网科技有限公司 咖啡网 科技互联网公司装修 宜安科技 互联网金融 撒么互联网科技公司 国外互联网科技网站 镁科技互联网资讯平台 北京三清互联网科技 电子科技大学互联网创业大赛 国大互联网教育科技有限公司薪资 马化腾互联网科技教学
0