java布尔类型的调用_java-使用布尔值进行同步
以下代码在并发访问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-使用布尔值进行同步相关推荐
- java布尔类型的调用_Java bean中布尔类型使用注意
JavaBean是一个标准,遵循标准的Bean是一个带有属性和getters/setters方法的Java类. JavaBean的定义很简单,但是还有有一些地方需要注意,例如Bean中含有boolea ...
- java布尔类型的调用_【Java学习笔记之八】JavaBean中布尔类型使用注意事项
JavaBean是一个标准,遵循标准的Bean是一个带有属性和getters/setters方法的Java类. JavaBean的定义很简单,但是还有有一些地方需要注意,例如Bean中含有boolea ...
- java 基本类型的引用_Java中的基本数据类型与引用数据类型
一.基本数据类型 byte.short.int.long(整数类型) float.double(浮点数类型) char(字符型) boolean(布尔类型 ) Java数据大多数存放在堆栈中.栈区:存 ...
- JAVA不同类型数组重载_java学习笔记--java中的方法与数组
方法 完成特定功能的代码块 方法的格式 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...){ //方法体 return 返回值: } 方法的调用方式 通过方法名调用方法 根据形 ...
- java对象类型有哪些_Java中常用的对象数据类型有哪些?它们分别又占多少个字节呢?...
CSDN上面有关于数据类型的一篇总结详细的文章,顺便复制过来: 在java中常见的数据类型有哪些 ? 内置数据类型类型名称字节.位数最小值最大值默认值例子 byte字节1字节,8位-128(-2^7) ...
- python布尔类型运算_9.python的布尔类型与流程控制
布尔类型其实可以算是一种特殊的数字,下面是 help() 函数得到的帮助信息: Help on class bool in module __builtin__:classbool(int)| boo ...
- java原始类型和引用类型_Java中的8种原始类型
java原始类型和引用类型 几年前,当我开始编辑Java Basics系列时,我认为将一些非常详细的信息拉到自己的帖子中是很有意义的. 这样,初学者的内容就更容易消化了. 首先,我将介绍有关Java的 ...
- java 字符类型 字节数_JAVA基本数据类型所占字节数是多少?
byte 1字节 short 2字节 int 4字节 long 8字节 char 2字节(C语言中是1字节)可以存储一个汉字 float 4字节 doub ...
- java基本类型运算溢出_java基本数据类型及运算的注意事项
java基本数据类型及运算的注意事项 一.基本数据类型 序号类型位数范围说明 整数类型 (最高位为符号位)byte8位-128(-27)~127(27-1)默认类型为int 二进制0b开头 八进制0开 ...
最新文章
- Spring之作用域
- 双端队列 HDOJ 3530 Subsequence
- Regarding @Inject annotation
- Qt 进程使用 使用当前进程启动另外进程
- java会编译失败吗?_Java为什么会有“无法到达的语句”编译器错误?
- 【英语学习】【Level 07】U07 Stories of my Life L1 Going to the Countryside
- Azure powershell 获取 vmSize 可用列表的命令
- Facebook开源图像处理库Spectrum,优化移动端图像生成
- 比较好用的二进制文件编辑与比较软件
- Unity学习笔记(一)—— 基础知识
- JDownloader 突破百度网盘下载限速
- [HAOI2009]毛毛虫 树形DP
- 【AI教程】AI科研绘图
- anaconda安装完怎么打开_10分钟带你安装和配置Anaconda
- 戴尔计算机管理界面在哪里,戴尔 win10系统控制面板如何打开?
- 手机里的微信群,都在变成DAO
- AI绘画是什么软件?看完你就知道了
- Sentinel持久化
- 企业信息化改革怎么做?
- 挖潜无极限---数据挖掘技术与应用热点扫描
热门文章
- SMPTE 274M 协议详细解读
- steam送新用户礼物解决方法
- 编程英语:常见代码错误 error 语句学习(15)
- 【振动理论(振动力学)】不计质量梁上有三个集中质量
- [手机Linux] 五,打造属于自己的私有网盘(Cloudreve),跟百度网盘说拜拜
- 不能错过的人工智能全球 2000 位最具影响力学者榜单
- ESP8266学习笔记5:ESP8266接入yeelink
- PCB贴片机如何送料?
- [原][译][jsbsim]空气动力学模型库讨论JSBSim对比YASim
- .isAssignableFrom的用法