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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 企业怎么运营公众号,怎么策划微信集赞活动?「建议收藏」

    企业怎么运营公众号,怎么策划微信集赞活动?「建议收藏」做微信公众号运营,微信活动是微信运营的一个重要内容,吸粉、扩散知名度、发起话题、维护粉丝等运营内容都可以通过微信活动来实现。今天谈谈如何通过微信集赞活动来吸粉。首先确定好活动的主题,如xx店庆、xx开业、xx节日等等其次要提前设置好活动礼品,如满xx赞奖励xx奖品最好可以跟本行业相关,如影楼行业可设置“用户集满100赞获得3张精修照片”;医美行业“用户集满XX赞免费获得一剂瘦脸针”等。奖励条…

    2025年8月29日
    7
  • JMeter安装与接口测试入门[通俗易懂]

    JMeter安装与接口测试入门[通俗易懂]安装环境配置1、JDK版本:JDK1.8及以上;2、操作系统:JMeter可以在当前任何一个已经部署了Java的操作系统上运行,Unix(Solaris,Linux,etc)、Windows(98,NT,2000,XP,WIN7)、OpenVMSAlpha7.3+JDK安装与配置1、jdk安装:在官网下载jdk1.8版本压缩包,解压到指定文件夹即可。2、环境变量配置1)右键点击…

    2022年5月3日
    65
  • Python爬虫实战之爬取网站全部图片(一)

    Python爬虫实战之爬取网站全部图片(一)Python爬虫实战之爬取网站全部图片(二)传送门:https://blog.csdn.net/qq_33958297/article/details/89388556爬取网址:http://www.meizitu.com/a/more_1.html爬取地址:https://www.meizitu.com/a/list_1_1.html一.获得图片地址和图片名称…

    2022年5月1日
    87
  • Python修改文件后缀名[通俗易懂]

    Python修改文件后缀名[通俗易懂]读万卷书,行万里路——木子成记事本练习html,解决来回修改后缀名程序运行后项目文件夹下生成exe文件,后续双击exe文件即可修改可修改当前运行所在文件及其子文件中所有html和txt文件循坏修改后缀名”””name=os.path.splitext():分离文件名(name[0])和后缀name[1]os.rename(new_filename,old_filename):修改文件名,若不在最初工作地址则需更改os.listdir(文件地址):得到当前目录的所

    2022年9月22日
    4
  • Git克隆远端代码到本地「建议收藏」

    1、在桌面上点击鼠标右键,找到clone选项,出现其中URL是你要访问的地址,directory为文件保存的路径。点击OK2、桌面上会生成一个文件夹3、在此文件夹中,点击鼠标右键,找到GitBashHere,进入到如下页面输入命令第一:gitconfig–globaluser.name“zjut_wzc”第二:gitconfig–globaluser.em…

    2022年4月7日
    163
  • Docker(四):使用Docker部署tomcat、mysql、nginx静态服务器

    Docker(四):使用Docker部署tomcat、mysql、nginx静态服务器

    2021年9月26日
    81

发表回复

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

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