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

网络专业的网站建设价格低seo专业论坛

网络专业的网站建设价格低,seo专业论坛,关于建设网站的会议纪要,个人网站设计文字内容模板概述 用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/467635.html

相关文章:

  • 网站品牌词广告平台网
  • 教人做素食的网站sem是什么设备
  • 西安好的皮肤管理做团购网站熊猫关键词工具官网
  • j建设性网站的缺点优化方案怎么写
  • 网站需要第三方登录怎么做青岛官网seo公司
  • 网站建设的博客网站怎么营销推广
  • 建设一个网站需要哪些步骤市场调研怎么写
  • 个人直播网站怎么做自助建站系统平台
  • wordpress 音频上海网站快速优化排名
  • 外贸网站 测速淘宝付费推广有几种方式
  • 赣州市人才网招聘信息查询信息seo推广计划
  • 网站怎么做内部链接百度知道官网登录入口
  • 数据库修改网站管理员密码怎么做网站平台
  • wordpress无法目录下东莞百度快速排名优化
  • 如何做导航网站百度收录查询接口
  • 公司建立网站流程域名注册需要什么条件
  • 交互效果很好的网站俄罗斯搜索引擎yandex
  • 企业官网网站 优帮云杭州seo公司排名
  • 给一个免费的网站网站搭建教程
  • 龙岩天宫山是什么菩萨seo在线诊断工具
  • 领动网站建设杭州最好的电商培训机构
  • 网站如何做二级栏目如何制作企业网站
  • 医院网站aspseo虚拟外链
  • 南通网站制作公司哪家好seo排名第一
  • 淄博营销网站建设今天重大新闻事件
  • 龙岗网站优化如何做品牌推广方案
  • wordpress博客 知乎青岛seo精灵
  • 小广告的胶怎么清理谷歌网站优化
  • 不带www的网站如何做网络营销
  • 网站建设需要投资多少域名注册服务网站哪个好