以下代码在并发访问List时是否是线程安全的?

挥发物合格在这里增加任何价值吗?

class concurrentList{

private AtomicBoolean locked = new AtomicBoolean(true);

volatile List list=new LinkedList();

long start = System.currentTimeMillis();

long end = start + 60*100;

public void push(int e){

while(!locked.get());

list.add(e);

while(!locked.compareAndSet(true,false));

}

public int pop(){

int elem;

while(locked.get());

elem=(Integer)list.remove(0);

while(!locked.compareAndSet(false,true));

return elem;

}

....

}

解决方法:

不,它不是线程安全的.调用push()的两个线程可以完美地将lock读取为true,然后同时将其添加到链接列表中.由于LinkedList不是线程安全的,因此您的代码也不是线程安全的.

要锁定,请使用锁,而不是AtomicBoolean.

标签:concurrency,java-util-concurrent,java

来源: https://codeday.me/bug/20191111/2018928.html

java布尔类型的调用_java-使用布尔值进行同步相关推荐

  1. java布尔类型的调用_Java bean中布尔类型使用注意

    JavaBean是一个标准,遵循标准的Bean是一个带有属性和getters/setters方法的Java类. JavaBean的定义很简单,但是还有有一些地方需要注意,例如Bean中含有boolea ...

  2. java布尔类型的调用_【Java学习笔记之八】JavaBean中布尔类型使用注意事项

    JavaBean是一个标准,遵循标准的Bean是一个带有属性和getters/setters方法的Java类. JavaBean的定义很简单,但是还有有一些地方需要注意,例如Bean中含有boolea ...

  3. java 基本类型的引用_Java中的基本数据类型与引用数据类型

    一.基本数据类型 byte.short.int.long(整数类型) float.double(浮点数类型) char(字符型) boolean(布尔类型 ) Java数据大多数存放在堆栈中.栈区:存 ...

  4. JAVA不同类型数组重载_java学习笔记--java中的方法与数组

    方法 完成特定功能的代码块 方法的格式 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...){ //方法体 return 返回值: } 方法的调用方式 通过方法名调用方法 根据形 ...

  5. java对象类型有哪些_Java中常用的对象数据类型有哪些?它们分别又占多少个字节呢?...

    CSDN上面有关于数据类型的一篇总结详细的文章,顺便复制过来: 在java中常见的数据类型有哪些 ? 内置数据类型类型名称字节.位数最小值最大值默认值例子 byte字节1字节,8位-128(-2^7) ...

  6. python布尔类型运算_9.python的布尔类型与流程控制

    布尔类型其实可以算是一种特殊的数字,下面是 help() 函数得到的帮助信息: Help on class bool in module __builtin__:classbool(int)| boo ...

  7. java原始类型和引用类型_Java中的8种原始类型

    java原始类型和引用类型 几年前,当我开始编辑Java Basics系列时,我认为将一些非常详细的信息拉到自己的帖子中是很有意义的. 这样,初学者的内容就更容易消化了. 首先,我将介绍有关Java的 ...

  8. java 字符类型 字节数_JAVA基本数据类型所占字节数是多少?

    byte     1字节 short    2字节 int      4字节 long     8字节 char     2字节(C语言中是1字节)可以存储一个汉字 float    4字节 doub ...

  9. java基本类型运算溢出_java基本数据类型及运算的注意事项

    java基本数据类型及运算的注意事项 一.基本数据类型 序号类型位数范围说明 整数类型 (最高位为符号位)byte8位-128(-27)~127(27-1)默认类型为int 二进制0b开头 八进制0开 ...

最新文章

  1. Spring之作用域
  2. 双端队列 HDOJ 3530 Subsequence
  3. Regarding @Inject annotation
  4. Qt 进程使用 使用当前进程启动另外进程
  5. java会编译失败吗?_Java为什么会有“无法到达的语句”编译器错误?
  6. 【英语学习】【Level 07】U07 Stories of my Life L1 Going to the Countryside
  7. Azure powershell 获取 vmSize 可用列表的命令
  8. Facebook开源图像处理库Spectrum,优化移动端图像生成
  9. 比较好用的二进制文件编辑与比较软件
  10. Unity学习笔记(一)—— 基础知识
  11. JDownloader 突破百度网盘下载限速
  12. [HAOI2009]毛毛虫 树形DP
  13. 【AI教程】AI科研绘图
  14. anaconda安装完怎么打开_10分钟带你安装和配置Anaconda
  15. 戴尔计算机管理界面在哪里,戴尔 win10系统控制面板如何打开?
  16. 手机里的微信群,都在变成DAO
  17. AI绘画是什么软件?看完你就知道了
  18. Sentinel持久化
  19. 企业信息化改革怎么做?
  20. 挖潜无极限---数据挖掘技术与应用热点扫描

热门文章

  1. SMPTE 274M 协议详细解读
  2. steam送新用户礼物解决方法
  3. 编程英语:常见代码错误 error 语句学习(15)
  4. 【振动理论(振动力学)】不计质量梁上有三个集中质量
  5. [手机Linux] 五,打造属于自己的私有网盘(Cloudreve),跟百度网盘说拜拜
  6. 不能错过的人工智能全球 2000 位最具影响力学者榜单
  7. ESP8266学习笔记5:ESP8266接入yeelink
  8. PCB贴片机如何送料?
  9. [原][译][jsbsim]空气动力学模型库讨论JSBSim对比YASim
  10. .isAssignableFrom的用法