博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AtomicBoolean介绍与使用
阅读量:4695 次
发布时间:2019-06-09

本文共 647 字,大约阅读时间需要 2 分钟。

介绍:在这个Boolean值的变化的时候不允许在之间插入,保持操作的原子性

方法: compareAndSet(boolean expect, boolean update)

            这个方法主要两个作用        

            1. 比较AtomicBoolean和expect的值,如果一致,执行方法内的语句。其实就是一个if语句      

             2. 把AtomicBoolean的值设成update       

            比较最要的是这两件事是一气呵成的,这连个动作之间不会被打断,任何内部或者外部的语句都不可能在两个动作之间运行。为多线程的控制提供了解决的方案。

demo:

[java]
  1. private static AtomicBoolean initialized = new AtomicBoolean(false);  
  2.   
  3. public void init()  
  4. {  
  5.    if( initialized.compareAndSet(false, true) )  
  6.    {  
  7.        // 这里放置初始化代码....  
  8.    }  
  9. }  

普通方法:
[java]
  1. public static volatile initialized = false;  
  2.   
  3. public void init()  
  4. {  
  5.     if( initialized == false ){  
  6.         initialized = true;  
  7.         // 这里初始化代码....  
  8.     }  

 

 

为了避免对象同一时刻多次被访问,保证永远只有一个线程在访问

转载于:https://www.cnblogs.com/hqlong/p/6586798.html

你可能感兴趣的文章
IT常用单词
查看>>
拓扑排序
查看>>
NYOJ--32--SEARCH--组合数
查看>>
JMS
查看>>
gulpfile 压缩模板
查看>>
【34.14%】【BZOJ 3110】 [Zjoi2013]K大数查询
查看>>
【 henuacm2016级暑期训练-动态规划专题 A 】Cards
查看>>
第五篇:白话tornado源码之褪去模板的外衣
查看>>
设备常用框架framework
查看>>
bootstrap模态框和select2合用时input无法获取焦点(转)
查看>>
21世纪经济网APP
查看>>
解决NetworkOnMainThreadException
查看>>
1039 到底买不买
查看>>
农银电商项目学习笔记(一)
查看>>
MockObject
查看>>
Chukwa
查看>>
(转)Maven仓库——私服介绍
查看>>
设计模式之工厂模式
查看>>
仿复制粘贴功能,长按弹出tips的实现
查看>>
Kubernetes-Host网络模式应用
查看>>