1.类AtomicBoolean

  aaarticlea/png;base64,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" alt="" />

可以用原子方式更新的 boolean 值。有关原子变量属性的描述,请参阅 java.util.concurrent.atomic 包规范。AtomicBoolean 可用在应用程序中(如以原子方式更新的标志),但不能用于替换 Boolean

2.构造函数

  1.AtomicBoolean()

    使用初始值 false 创建新的 AtomicBoolean

  2.AtomicBoolean(boolean initialValue)

    使用给定的初始值创建新的 AtomicBoolean

3.方法详解

get

public final boolean get()
返回当前值。

返回:
当前值

compareAndSet

public final boolean compareAndSet(boolean expect,
boolean update)
如果当前值 == 预期值,则以原子方式将该值设置为给定的更新值。

参数:
expect - 预期值
update - 新值
返回:
如果成功,则返回 true。返回 False 指示实际值与预期值不相等。

weakCompareAndSet

public boolean weakCompareAndSet(boolean expect,
boolean update)
如果当前值 == 预期值,则以原子方式将该值设置为给定的更新值。

可能意外失败并且不提供排序保证,因此几乎只是 compareAndSet 的适当替代方法。

参数:
expect - 预期值
update - 新值
返回:
如果成功,则返回 true。

set

public final void set(boolean newValue)
无条件地设置为给定值。

参数:
newValue - 新值

lazySet

public final void lazySet(boolean newValue)
最终设置为给定值。

参数:
newValue - 新值
从以下版本开始:
1.6

getAndSet

public final boolean getAndSet(boolean newValue)
以原子方式设置为给定值,并返回以前的值。

参数:
newValue - 新值
返回:
以前的值

toString

public String toString()
返回当前值的字符串表示形式。

覆盖:
Object 中的 toString
返回:
当前值的字符串表示形式。

java并发编程:线程安全管理类--原子操作类--AtomicBoolean的更多相关文章

  1. java并发编程 线程基础

    java并发编程 线程基础 1. java中的多线程 java是天生多线程的,可以通过启动一个main方法,查看main方法启动的同时有多少线程同时启动 public class OnlyMain { ...

  2. Java 并发编程 | 线程池详解

    原文: https://chenmingyu.top/concurrent-threadpool/ 线程池 线程池用来处理异步任务或者并发执行的任务 优点: 重复利用已创建的线程,减少创建和销毁线程造 ...

  3. Java并发编程:线程间通信wait、notify

    Java并发编程:线程间协作的两种方式:wait.notify.notifyAll和Condition 在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作.比如说最经典的生产者-消费者 ...

  4. Java并发编程:线程和进程的创建(转)

    Java并发编程:如何创建线程? 在前面一篇文章中已经讲述了在进程和线程的由来,今天就来讲一下在Java中如何创建线程,让线程去执行一个子任务.下面先讲述一下Java中的应用程序和进程相关的概念知识, ...

  5. java并发编程 | 线程详解

    个人网站:https://chenmingyu.top/concurrent-thread/ 进程与线程 进程:操作系统在运行一个程序的时候就会为其创建一个进程(比如一个java程序),进程是资源分配 ...

  6. java并发编程系列二:原子操作/CAS

    什么是原子操作 不可被中断的一个或者一系列操作 实现原子操作的方式 Java可以通过锁和循环CAS的方式实现原子操作 CAS( Compare And Swap )  为什么要有CAS? Compar ...

  7. Java并发编程——线程池的使用

    在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统 ...

  8. Java并发编程——线程池

    本文的目录大纲: 一.Java中的ThreadPoolExecutor类 二.深入剖析线程池实现原理 三.使用示例 四.如何合理配置线程池的大小 一.Java中的ThreadPoolExecutor类 ...

  9. Java并发编程(三)Thread类的使用

    一.线程的状态 线程从创建到最终的消亡,要经历若干个状态.一般来说,线程包括以下这几个状态:创建(new).就绪(runnable).运行(running).阻塞(blocked).time wait ...

  10. [转]JAVA并发编程学习笔记之Unsafe类

    1.通过Unsafe类可以分配内存,可以释放内存:类中提供的3个本地方法allocateMemory.reallocateMemory.freeMemory分别用于分配内存,扩充内存和释放内存,与C语 ...

随机推荐

  1. iptables,lokkit,ebtables,arptables---logrotate

    iptables,lokkit,ebtables,arptables logrotate  这五个位置也被称为五个钩子函数(hook functions),也叫五个规则链. 1.PREROUTING ...

  2. vue - 计算属性、表单输入绑定

    计算属性 computed:{} <!DOCTYPE html> <html> <head> <title></title> </he ...

  3. KVM中断虚拟化浅析

    2017-08-24 今天咱们聊聊KVM中断虚拟化,虚拟机的中断源大致有两种方式,来自于用户空间qemu和来自于KVM内部. 中断虚拟化起始关键在于对中断控制器的虚拟化,中断控制器目前主要有APIC, ...

  4. python知识大全目录,想学的看过来!

    Python总结篇——知识大全   python装饰器   PyCharm安装与配置,python的Hello World   sort与sorted的区别及实例   我必须得告诉大家的MySQL优化 ...

  5. django高级之点赞、文章评论及上传文件

    目录: 点赞 文章评论 上传文件 保留页面条件 一.点赞 1.所用技术: django model F查询 js应用:$(function () {}); 为文件加载完成执行ready() 方法.等同 ...

  6. Django Rest Framework(3)-----APIView与Viewsets

    REST framework提供了一个APIView类,它是Django的View类的子类. REST framework主要的几种view以及他们之间的关系: mixins 到目前为止,我们使用的创 ...

  7. java多线程(四)

    使用synchronized锁实现线程同步 为什么要用线程同步 我们先来看下这段代码的运行结果: Java学习交流群:495273252 在多线程上篇博客已经介绍过了,JVM采用的是抢占式调度模型,当 ...

  8. 文件上传—SSH框架文件上传

    1.准备上传的api组件 <dependency> <groupId>commons-io</groupId> <artifactId>commons- ...

  9. redis—Spring中redis缓存的简单使用

    这里使用的是 Spring-4.3 , redis-2.8 的版本   1.添加maven依赖 <dependency> <groupId>redis.clients</ ...

  10. RC1意思

    软件各种版本的表示 alpha 内部测试版 beta 外部测试版 demo 演示版 Enhance 增强版或者加强版 属于正式版 Free 自由版 Full version 完全版 属于正式版 sha ...