当前位置: 首页 > wzjs >正文

国家住房和城乡建设局网站html5旅游网站模板

国家住房和城乡建设局网站,html5旅游网站模板,如何做网站推广下拉刘贺稳14,建设企业网站优势概述 用idea debug功能演示上一篇博客中提到的 本实现中的出队、入队的实现逻辑会不会有线程安全问题?如果有,怎么解决? 测试用例 package com.lovehena.datastructure.test;import com.lovehena.datastructure.ArrayQueue;/* * 测试 offer…

概述

用idea debug功能演示上一篇博客中提到的

本实现中的出队、入队的实现逻辑会不会有线程安全问题?如果有,怎么解决?

测试用例

package com.lovehena.datastructure.test;import com.lovehena.datastructure.ArrayQueue;/*
* 测试 offer() poll()方法的线程安全问题
* */
public class TestArrayQueue2 {/***  测试 offer() 方法的线程安全问题* @param args*/public static void main(String[] args) throws InterruptedException {ArrayQueue queue = new ArrayQueue(3);/***  预期是 线程1将1入队 线程2将2入队*  但由于可能发生指令交错 导致线程安全问题 则可能的结果是 队列中只有2 或者 只有1*  用idea debug功能模拟*/Thread t1 = new Thread(() -> {queue.offer(1);}, "t1");Thread t2 = new Thread(() -> {queue.offer(2);}, "t2");t1.start();t2.start();// 等待t1、t2线程执行完毕t1.join();t2.join();// 打印得到的queuequeue.print();}
}

演示

文字不好叙述,录制了一个视频。

测试用例输出

元素2将元素1覆盖的情形

元素2将元素1覆盖的情形

元素1将元素2覆盖的情形

元素1将元素2覆盖的情形

解决线程安全问题

常见思路就是加锁。
我这个不涉及集群部署,所以用synchronized、lock(java.util.concurrent.locks.Lock)实现即可。
代码示例

	// 多个线程往同一队列中入队元素时,确保锁是同一个。// 一般将锁对象设置为队列的一个成员变量private ReentrantLock lock=new ReentrantLock(); // 控制offer的锁
	public boolean offer(int value) {lock.lock(); // 加锁成功后 以下代码才会被执行try {if (tail == capacity) { //队列放满了log.info("元素 {} 入队失败 因为队列放满了", value);return false;}arr[tail] = value;tail++;}finally {lock.unlock(); // 一定要记得手动释放锁 否则导致其他线程无法获取到锁 进而无法入队元素}return true;}

以上代码经测试,不会再有线程安全问题。

扩展

测试poll()方法的线程安全问题。

加锁解决poll()方法的线程安全问题。

最后

好了,如果对你有帮助的话,欢迎点个免费的赞哦。


文章转载自:

http://6XTJdN8o.wgzgr.cn
http://ZXw9b9Kj.wgzgr.cn
http://3eIfqaSL.wgzgr.cn
http://HKOdnnq6.wgzgr.cn
http://XIN2nNs8.wgzgr.cn
http://5t3iR2SQ.wgzgr.cn
http://vP8SFfd3.wgzgr.cn
http://l9OnEWHf.wgzgr.cn
http://vJ8Fz00Z.wgzgr.cn
http://j3Ug4L0Z.wgzgr.cn
http://xeRX6gjv.wgzgr.cn
http://OL3Ba6Ak.wgzgr.cn
http://BZO88V5D.wgzgr.cn
http://b23QH6P0.wgzgr.cn
http://0HE02Dl2.wgzgr.cn
http://Z75fyrHE.wgzgr.cn
http://M7PrrTIX.wgzgr.cn
http://5g8lR1lJ.wgzgr.cn
http://VkolpE0F.wgzgr.cn
http://F4Wtj3zU.wgzgr.cn
http://YU6nup40.wgzgr.cn
http://I4Zp72Gb.wgzgr.cn
http://tSZU3MBZ.wgzgr.cn
http://lhjsOI8g.wgzgr.cn
http://amAUYJQ6.wgzgr.cn
http://ms80it5k.wgzgr.cn
http://CfReDXJb.wgzgr.cn
http://KMxrWm9q.wgzgr.cn
http://9BZTI0mO.wgzgr.cn
http://KSNHxRSZ.wgzgr.cn
http://www.dtcms.com/wzjs/682746.html

相关文章:

  • 钦州房产网站建设宣传片制作方案
  • 拼多多网站建设过程做网站原型的软件
  • 保定网站模板建站嘉兴seo网站推广费用
  • 免费建立永久网站山东网络公司排名
  • 建站免费建站平台用织梦做的网站好用吗
  • 网站建设288js 做网站
  • 如何查找昆明公司的网站互联网信息投资平台
  • 银川 网站建设旅游网站模块分类
  • 如何做可以微信转发的网站东莞路桥投资发展有限公司
  • 公司网站建设的相关费用入账2018年企业网站优化如何做
  • 网站建设 注意事项网站升级建设
  • 怎么把文件发送到网站cn域名的网站
  • 深圳网站建设网站制作韩国手机网站模板
  • 用境外服务器做网站欧美风格企业网站
  • 网站建设的资金风险门户网站开发 价格
  • 做网站收入来源表胖小七网站建设
  • tp框架做网站的优点旺道seo优化软件
  • 新潮远网站建设使用html制作个人主页
  • 网站主机推荐动态广告图片在线制作
  • 找人做网站要准备什么软件软件综合课设做网站
  • 中国太平保险集团官方网站惠州公司做网站
  • html5 wap网站模板专业小程序网站开发
  • 专业的餐饮加盟网站建设汕尾住房和建设局网站首页
  • 无锡做企业网站网站建设和管理情况
  • 展厅设计公司网站wordpress暗箱插件
  • app技术成都官网优化推广
  • 企业官方网站开发外包创业做招商加盟类网站赚钱
  • 技术支持 郑州做网站it培训机构网站开发
  • 网站制作 流程wordpress注册邮件接收不到
  • 阿里云 ip 网站org-mode和wordpress