初学多线程使用中踩过的坑

在这里插入图片描述

wait使用,外面没有加synchronized ,导致频繁报错。
IllegalMonitorStateException - 如果当前线程不是对象监视器的所有者报异常。
wait使用时会释放锁。并且使当前线程休眠,所以如果没有在synchronized 里面,没有获得锁。就会报错。
synchronized:同步代码块。当多个线程访问共享数据的时候,可以用同步代码块包裹避免多个线程抢占资源出现不完全的情况。
wait() notify() notifyAll() 都必须在synchronized 中使用
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210422082831900.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyNTUzNTA0,size_16,color_FFFFFF,
wait()导致当前线程等待,直到另一个线程调用该对象的 notify()方法或 notifyAll()方法。 被唤醒后按之前的顺序执行。在这里插入图片描述

notifyAll() 唤醒正在等待对象监视器的所有线程

notify() 唤醒正在等待对象监视器的单个线程。
两个方法都不会释放当前的锁

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/442754.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue element-ui登录页面源码

HTML <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>登录</title><script src"static/Vue.jsv2.6.12.js" type"text/javascript" charset"utf-8"></script><scrip…

基于vue,elementui的注册页面源码

HTML <!DOCTYPE html> <html><head><meta charset"utf-8"><title>新用户注册 USER REGISTER</title></head><script src"static/Vue.jsv2.6.12.js" type"text/javascript" charset"utf-8&qu…

sql语句简单的单表查询语句

/* 查询库存大于20的信息 SELECT*FROM product WHERE stock>20; */ /*查询品牌为华为的商品信息 SELECT * FROM product WHERE brand‘华为’; */ /查询金额在4000~ 6000之间的 SELECT * FROM product WHERE price>4000 AND price < 6000; SELECTFROM product WHER…

mysql简单聚合函数根据条件单表查询

/*计算product表中所有的记录条数 SELECT COUNT(*) FROM product; *//*获取最高的价格 SELECT MAX(price) FROM product; *//*获取最低库存 SELECT MIN(stock) FROM product; *//**获取总库存的数量 SELECT SUM(stock) FROM product; *//**获取品牌为苹果的总库存数量 SELECT S…

mysql单表简单排序查询

-- 按库存升序排序 SELECT * FROM product ORDER BY stock ASC;-- 查询名称中包含手机的商品信息 按金额降序排序 SELECT * FROM product WHERE NAME LIKE "%手机%" ORDER BY price DESC;-- 按照金额升序排序&#xff0c;如果金额相同按库存降序排序 SELECT * FROM p…

mysql简单的sql语句单表分组查询

-- 按品牌分组&#xff0c;获取每组商品总金额 SELECT brand,SUM(price) FROM product GROUP BY brand; -- 对于金额大于4000 的商品 按品牌分组&#xff0c;获取每组商品总金额 SELECT brand,SUM(price) FROM product WHERE price > 4000 GROUP BY brand;-- 对于金额大于40…

mysql简单的分页查询sql语句

-- limit 当前页数&#xff0c;每页显示条数 当前页数 &#xff08;当前页数-1&#xff09; * 每页显示条数-- 每页显示3条数据-- 第一页 SELECT * FROM product LIMIT 0,3; -- 第二页 SELECT * FROM product LIMIT 3,3; -- 第二页 SELECT * FROM product LIMIT 6…

mysql多表内连接查询

-- 查询用户信息和对应的订单信息 SELECT * FROM USER INNER JOIN orderlist ON orderlist.uiduser.id;user-- 查询用户信息和对应的订单信息 起别名 SELECT * FROM user u INNER JOIN orderlist o ON o.uidu.id;-- 查询用户 姓名 年龄&#xff0c; 订单编号SELECT u.NAME, --…

mysql简单外连接查询

-- 查询所有用户信息 以及用户对应的订单信息 SELECTu.*, //用户所有信息o.number //订单 FROMUSER u LEFT OUTER JOIN orderlist o //订单表 ON o.uidu.id; //用户表-- 查询所有的订单信息 以及订单所属的用户信息 SELECTo.*, //订单表u.NAME FROMUSER u RIGHT OUTER JO…

基于element-ui,vue的html随机点名器

点击开始点名&#xff0c;进入循环&#xff0c;点击停止&#xff0c;会禁用按钮 在500毫秒之后&#xff0c;将点到的人名字放到上面&#xff0c;在下面表体会消失这个人&#xff0c; 点名之后可以刷新。暂时还没有做将点到的人还回来。&#xff08;1.0&#xff09; 用到的资料…

elementui vue的html随机点名器软件网页版源码1.1

**在之前基础上新增了点击开始点名之后&#xff0c;判断姓名池的数量的判断&#xff0c;如果数量为零给出提示。 按钮的双击&#xff0c; 如果是在姓名池&#xff0c;在会进入上面的被点名状态&#xff0c; 如果是在上面卡片中的点名状态&#xff0c;则会重新回到姓名池 ** HTM…

elementuiDemo1.1

1.1版本 &#xff0c;大概完成浏览器的整体适配&#xff0c; tab的增删&#xff0c;选中 处理中心 item&#xff0c;的新增。动态获取名称 src路径。 JS let vue new Vue({el: "#main",data: {/* tab */editableTabsValue: 1,/* 默认选中&#xff0c;如果有新增则会…

html css简单form表单源码

<!DOCTYPE html> <html><head><meta charset"utf-8"><title>用户注册</title></head><style>body {background-color: #F0F9EB;margin: 0;position: absolute;top: 50%;left: 50%;-ms-transform: translate(-50%, -…

好看的a标签按钮样式

<a class"a1" href"#">返回首页</a><a class"a2" href"#">返回首页</a><style>.a1 {color: #000000;padding: 10px;text-decoration: none;font-size: 16px;background-color: #dce1e6;}.a1:active {ba…

java连接mysql数据库C3P0入门

这里使用的是phpstudy软件&#xff0c;会自带mysql&#xff0c;这里启动数据库。 **sqlyong 可视化建立对数据库的连接&#xff0c;地址&#xff0c;我这里是本地所以用的是localhost&#xff0c; 用户名&#xff1a; 密码&#xff1a; 在phpstury 可以建立修改&#xff0c; 然…

java的druid连接

导入jar包 将druid配置文件放到src目录下 import cn.silence2.domain.Student; import com.alibaba.druid.pool.DruidDataSourceFactory;import javax.sql.DataSource; import java.io.InputStream; import java.sql.Connection; import java.sql.Date; import java.sql.Prepar…

java ==号比较String字符串的地址

/*** java 号比较String字符串的地址* <p>* String类代表字符串。 Java程序中的所有字符串文字&#xff08;例如"abc" &#xff09;都被实现为此类的实例。* 字符串不变; 它们的值在创建后不能被更改。 字符串缓冲区支持可变字符串。* 因为String对象是不可变的…

javaweb jsp页面无法解析${message}

我遇到的问题是jsp 页面无法解析/${ } 标签&#xff0c; 后台和页面都没有报错。 原因时web.xml <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns"http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi"http://www.w3.org/2001…

vue element-ui 无法渲染表格数据解决

页面无报错 ajax请求数据。数据正常到达。 但是无法渲染。 换成 axios.get("/user/findAll").then(resp > {this.tableData resp.data;});问题解决。 虽然不知道为啥。但是问题解决了。哈哈&#xff01;

java数组及Arrays创建一个int 类型数组 数组元素由键盘录入,每次打印插入排序的结果(数组扩容,数组排序,键盘录入)

author silence丶你的名字 java数组及Arrays创建一个int 类型数组 数组元素由键盘录入&#xff0c;每次打印插入排序的结果 初始数组元素1 for死循环 获取用户录入的数据&#xff0c;如果为9527 程序结束&#xff0c;否则拷贝一个新数组&#xff0c;进行排序 避免原始数组被排…