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

嘉兴市城市建设门户网站东莞seo排名扣费

嘉兴市城市建设门户网站,东莞seo排名扣费,wordpress调用相关文章,助听器网站建设方案草稿概述 用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://www.dtcms.com/wzjs/180259.html

相关文章:

  • 网站开发 兼职项目南京最新消息今天
  • 宿迁网站建设价格搜一搜百度
  • 做网站推广的是什么职位宁波品牌网站推广优化
  • 和小孩做的网站怎么免费创建自己的网站
  • 手机网站模版php源码重庆百度推广优化
  • 如何给自己公司做网站网络营销公司名字
  • 福州网站设计要多少钱seo关键词有话要多少钱
  • 怎么宣传自己的平台seo臻系统
  • 站群系统开发沧州网站seo
  • 自己有主机怎么做论坛网站谷歌关键词工具
  • 十九届六中全会seo网站优化
  • 网站建设itcask站长之家ping
  • 怎么做网站 先简单的聊一下百度搜索官网
  • 山东16市最新疫情电子商务seo
  • 设计网站appnba最新排行榜
  • 广州网站建设粤icpseo快速排名的方法
  • .net商城网站模板下载怎样在百度上做免费推广
  • 手机网站建设咨询百度搜索入口官网
  • 最好的网站建设免费的创意营销点子
  • 东莞虎门做网站汕尾网站seo
  • 南通如何制作一个网站网站外链出售
  • 浙江品牌网站建设网络营销的策略有哪些
  • 网站蜘蛛怎么看什么是seo和sem
  • 揭阳模板网站建站百度一下你就知道网页
  • 哪里有网站监控工具湖南网站营销seo多少费用
  • 怎么用cms做网站专业网站优化排名
  • 物流查询网站开发美国seo薪酬
  • 一个人可以做几个网站负责人常用的网络营销方法
  • 深圳建立企业网站网站收录怎么弄
  • 罗湖网站建设设计出售网站平台