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程序抽象层来控制。

 

 

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Linux文件系统目录结构详解

    Linux文件系统目录结构详解引言对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要,下面我们就开始了解一下linux目录结构的相关知识。在Linux或Unix操作系统中,所有的文件和目录都被组织成以一个根节点开始的倒置的树状结构。linux

  • JavaIO BufferedReader和BufferedWriter介绍和实例

    JavaIO BufferedReader和BufferedWriter介绍和实例BufferedReader和BufferedWriter简介为了提高字符流读写的效率,引入了缓冲机制,进行字符批量的读写,提高了单个字符读写的效率。BufferedReader用于加快读取字符的速度,BufferedWriter用于加快写入的速度BufferedReader和BufferedWriter类各拥有8192个字符的缓冲区。当BufferedReader在读取文本文件时,会先尽…

  • js中判断对象是否为空

    js中判断对象是否为空1.es6中可以使用Object.keys(obj)vardata={};vararr=Object.keys(data);alert(arr.length==0);//true为空,false不为空2.将json对象转化为json字符串,再判断该字符串是否为"{}"vardata={};varb=(JSON.stringify(data)==…

  • windows server 2012r2安装iis_iis启动服务器

    windows server 2012r2安装iis_iis启动服务器1.进入服务器管理器,右键角色,添加角色服务,勾选灰掉的选项(这边截的图是已安装的)2.双击1中创建的internet服务器,右键添加网站,设置好网站名称、物理路径、ip地址、端口号等点击保存网站建立好之后,接着就要配置相关访问的权限、(http响应标头)跨域访问、ISAPI筛选器、请求筛选等3、配置好了网站,接下来就要配置防…

  • java程序运行机制的特点_Java语言的特点

    java程序运行机制的特点_Java语言的特点特点一:面向对象1、两个基本概念:类、对象2、三大特性:封装、继承、多态特点二:健壮性吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等),提供了一个相对安全的内存管理和访问机制特点三:跨平台性跨平台性:通过Java语言编写的应用程序在不同的系统平台上都可以运行。“Writeonce,RunAnywhere”原理:只要在需要运行java应用程序的操作系…

  • C++二维vector初始化

    C++二维vector初始化初始化一个二维vector,行M,列N(行列数确定且含有初始值)://初始化一个二维的matrix,行M,列N,且值为0vector<vector<int>>matrix(M,vector<int>(N));//等价于下面的vector<vector<int>>matrix(M);for(inti=0;i<M;i++){matrix[i].resize(N);}//等价于下面的vector&l

发表回复

您的电子邮箱地址不会被公开。

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