wait方法和notify方法_wait和notify的作用

wait方法和notify方法_wait和notify的作用    为什么wait和notifyAll(notify)必须要使用synchronized?synchronized(object){object.wait();} synchronized(this){this.wait();} synchronizedfun(){this.wait();}     如…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

    为什么wait 和notifyAll(notify) 必须要使用synchronized?

synchronized(object){
   object.wait();
}

 

synchronized(this){
   this.wait();
}

 

synchronized fun(){
    this.wait();
}

  

    如果不用在synchronized里面就会报错:

java.lang.IllegalMonitorStateException

       首先明确wait 和notifyAll是基于对象而存在的。wait等待的就是一个对象发出的信号。

       既然基于对象,因此需要一个数据结构来存放这些等待的线程,而且这个数据结构应当与这个对象绑定,此时在这个对象上面可能有多个线程调用wait/notifyAll方法。

       在向这个数据结构上面写入,删除数据时,依然存在并发问题,理论上也需要一个锁来控制。在JVM中是通过检查当前线程是否为对象的OWNER来判定是否要抛出相应的异常,由此可见他希望该动作由Java程序抽象层来控制。

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196610.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ip addr add配置ip_ip helper-address

    ip addr add配置ip_ip helper-addressbroadcastADDRESS—-协议广播地址,可以简写成brd,此外可以简单的在后面加上”+”表示广播地址由协议地址加主机位全置1组成,”-“则表示主机位全置0。例如你的配置:ipaddradd127.0.0.1/8devlobrd+则表示广播地址为127.255.255.255,网络地址(前8位)为127,主机地址(后面的24位)全为1,加起来为广播地址。扩展:ipad…

    2022年7月27日
  • 实战项目中Java heap space错误的解决[通俗易懂]

    实战项目中Java heap space错误的解决[通俗易懂] java高级面试 2018-09-0720:19:23部标GPS通讯系统在上线之后,经过不断调试,终于稳定运行一段时间,后来又遇到了Javaheapspace错误异常!日志如下: 说明系统中有未释放的对象。如何找出这些未释放对象以及监控JVM堆内存,优化代码释放内存对象呢?还有JVM的垃圾回收机制是如何运作的呢?首先在系统启动运行的时候打开记录GC详细信息,运行脚本…

    2022年7月8日
  • 什么是网站的灵魂_测试性能网站

    什么是网站的灵魂_测试性能网站前言在前一篇随笔《大型网站系统架构的演化》中,介绍了大型网站的演化过程,期间穿插了一些技术和手段,我们可以从中看出一个大型网站的轮廓,但想要掌握设计开发维护大型网站的技术,需要我们一步一步去研究实践

    2022年8月4日
  • 大学课程 | 《微机原理与接口技术》知识点总结[通俗易懂]

    大学课程 | 《微机原理与接口技术》知识点总结[通俗易懂]文章目录第一章微型计算机基础概论第一讲关于第二讲微型计算机系统组成第三讲微机工作过程第四讲常用数制第五讲编码第六讲数及其运算第七讲基本逻辑运算和逻辑门第八讲基本逻辑运算及其门电路第二章微处理器与总线第九讲8088/8086微处理器第十讲8088的主要引线及其内部结构第十一讲8088CPU内部寄存器第十二讲实模式下的存储器寻址第十三讲8088系统总线第三章指令系统概述第十四讲8088/8086指令系统第十五讲指令的寻址方式第十六讲数据传送指令第四章算术运算,逻辑运算与

    2022年10月3日
  • vue使用md5_vuepress在线编辑文档

    vue使用md5_vuepress在线编辑文档1,需求一直在找一个好用的富文本编辑器,但是发现现在富文本已经不流行了,现在流行md所以找md编辑器找到一个好用的:mavon-editorgithub:https://github.com/hinesboy/mavonEditor2,配置main.jsimportVuefrom”vue”;importAppfrom”./App.vue”;import…

    2022年9月2日
  • Mybatis中JdbcType的使用[通俗易懂]

    Mybatis中JdbcType的使用[通俗易懂]MyBatis插入空值时,需要指定JdbcTypemybatisinsert空值报空值异常,但是在PL/SQL不会提示错误,主要原因是mybatis无法进行转换jdbcType的使用场合,只有当在insert,update和delete中有空字段时,需要使用jdbcType。MyBatis包含的jdbcType类型BIT、FLOAT、CHAR、TIMESTAMP、OTHE…

    2022年10月20日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号