`
raymond.chen
  • 浏览: 1417642 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java.util.concurrent.atomic包的常用类

 
阅读更多

java.util.concurrent.atomic包主要的常用类包括:AtomicBoolean、AtomicInteger、AtomicIntegerArray、AtomicLong、AtomicLongArray、AtomicLongMap、AtomicReference、AtomicReferenceArray、AtomicStampedReference、AtomicMarkableReference、AtomicDouble、AtomicDoubleArray等。

 

该工具包支持在单个变量上解除锁定的线程安全编程。

 

volatile:多线程读写过程中能够保持它们的可见性。即要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值。

 

1、AtomicBoolean的常用方法

AtomicBoolean b = new AtomicBoolean(false);

b.compareAndSet(false, true); //将false改值为true
b.get(); //获取当前布尔值
b.getAndSet(true); //获取当前布尔值,并改值为true
b.set(true); //设置值为true

 

2、AtomicInteger的常用方法

AtomicInteger i = new AtomicInteger(0);

i.intValue(); //返回int型值
i.floatValue(); //返回float型值
i.doubleValue();
i.shortValue();
i.longValue();
i.get(); //获取当前值
i.set(1); //设置新值
i.getAndAdd(1); //获取当前值后,再为当前值增1
i.getAndSet(1); //获取当前值后,再将当前值设为1
i.getAndIncrement(); //获取值后,值自增1
i.getAndDecrement(); //获取值后,值自减1
i.compareAndSet(0, 1); //将0值改为1
i.addAndGet(2); //当前值增2后,再返回当前值
i.incrementAndGet(); //值自增1后,再返回当前值
i.decrementAndGet(); //值自减1后,再返回当前值

 

3、AtomicLong

     类似AtomicInteger

 

4、AtomicReference   对象引用原子性,提供了以无锁方式访问共享资源的能力

        Person p1 = new Person("name1", 1);

        AtomicReference<Person> reference = new AtomicReference<>(p1);

        Person p2 = reference.get();

        boolean b = reference.compareAndSet(null, p3);

        reference.getAndSet(p);

 

5、AtomicStampedReference  可以追踪引用的整个变化过程

 

6、AtomicMarkableReference   追踪变量是否变化过

 

分享到:
评论

相关推荐

    java.util.concurrent

    java.util.concurrent总体概览图。 收取资源分3分。...java.util.concurrent主要包括5个部分executor,colletions,locks,atomic,tools。 该图详细的列举了并发包下面的结构,包含所有接口和具体实现类。

    Redis客户端Redisson.zip

    of java.util.Deque 分布式 java.util.Map 分布式 java.util.concurrent.ConcurrentMap 通过TTL实现可重入 java.util.concurrent.locks.Lock 分布式 java.util.concurrent.atomic.AtomicLong分布式 ...

    atomic-array-rs:定义几种数组类型,其中元素可以原子更新。 旨在提供类似于Java中的java.util.concurrent.atomic中的原子数组类型

    旨在提供类似于Java中的java.util.concurrent.atomic中的原子数组类型。 提供以下类型: AtomicOptionRefArray –对应于 。 AtomicRefArray –具有强制默认值的AtomicOptionRefArray ,用于删除元素的可选属性。...

    大厂面试题第二季(加入了MQ和Mysql的面试题以及答案).mmap

    API中JUC并发的三个相应包和解释1.java.util.concurrent。 concurrent是并发的意思2.java.util.concurrent.atomic。 atomic 是原子性的意思3.java.util.concurrent.locks。 locks是锁的意思

    java SE API

    java.util.concurrent.atomic java.util.concurrent.locks java.util.jar java.util.logging java.util.prefs java.util.regex java.util.zip javax.accessibility javax.activity javax.crypto javax....

    JAVA_API1.6文档(中文)

    java.util.concurrent.atomic 类的小工具包,支持在单个变量上解除锁的线程安全编程。 java.util.concurrent.locks 为锁和等待条件提供一个框架的接口和类,它不同于内置同步和监视器。 java.util.jar 提供读写 ...

    javafxHtml编辑器.doc

    ava.util.concurrent.atomic java.util.concurrent.locks java.util.function java.util.jar java.util.logging java.util.prefs java.util.regex java.util.spi

    Javase-6.0_中文API_HTML(最新更新)

    java.util.concurrent.atomic java.util.concurrent.locks java.util.jar java.util.logging java.util.prefs java.util.regex java.util.spi java.util.zip javax.accessibility javax.activation javax....

    jdk 中文版

    java.util.concurrent.atomic java.util.concurrent.locks java.util.jar java.util.logging java.util.prefs java.util.regex java.util.spi java.util.zip javax.accessibility javax.activation javax....

    金蝶BOSV6.1_业务组件API参考手册

    Packages ...com.kingdee.bos.management.util ...com.kingdee.bos.util.backport.concurrent.helpers Auxiliary and helper classes for backport.util.concurrent, NOT present in java.util.concurrent. ...

    java7rt.jar源码-JVM:JVM学习笔记

    java.util.atomic 进程/线程 并发/并行 线程 package com.ntuzy.juc_01 ; import java.util.concurrent.Callable ; import java.util.concurrent.ExecutionException ; import java.util.concurrent.FutureTask ; /*...

    java jdk-api-1.6 中文 chmd

    java.util.concurrent.atomic 类的小工具包,支持在单个变量上解除锁的线程安全编程。 java.util.concurrent.locks 为锁和等待条件提供一个框架的接口和类,它不同于内置同步和监视器。 java.util.jar 提供读写 ...

    Java中的锁分类与使用.docx

    乐观锁适用于多读的应用类型,这样可以提高吞吐量,在Java中java.util.concurrent.atomic包下面的原子变量类就是使用了乐观锁的一种实现方式CAS(Compare and Swap 比较并交换)实现的。 悲观锁:总是假设最坏的情况,...

    JavaAPI中文chm文档 part2

    java.util.concurrent.atomic 类的小工具包,支持在单个变量上解除锁的线程安全编程。 java.util.concurrent.locks 为锁和等待条件提供一个框架的接口和类,它不同于内置同步和监视器。 java.util.jar 提供读写 ...

    java api最新7.0

    java.util.concurrent.atomic 类的小工具包,支持在单个变量上解除锁的线程安全编程。 java.util.concurrent.locks 为锁和等待条件提供一个框架的接口和类,它不同于内置同步和监视器。 java.util.jar 提供读写 JAR ...

    Java 1.6 API 中文 New

    java.util.concurrent.atomic 类的小工具包,支持在单个变量上解除锁的线程安全编程。 java.util.concurrent.locks 为锁和等待条件提供一个框架的接口和类,它不同于内置同步和监视器。 java.util.jar 提供读写 JAR ...

    [Java参考文档].JDK_API 1.6

    java.util.concurrent.atomic 类的小工具包,支持在单个变量上解除锁的线程安全编程。 java.util.concurrent.locks 为锁和等待条件提供一个框架的接口和类,它不同于内置同步和监视器。 java.util.jar 提供读写 JAR ...

    JavaAPI1.6中文chm文档 part1

    java.util.concurrent.atomic 类的小工具包,支持在单个变量上解除锁的线程安全编程。 java.util.concurrent.locks 为锁和等待条件提供一个框架的接口和类,它不同于内置同步和监视器。 java.util.jar 提供读写 ...

    JavaSE-6.0-英文手册(2008/11/30_FullUpdate)

    java.util.concurrent.atomic java.util.concurrent.locks java.util.jar java.util.logging java.util.prefs java.util.regex java.util.spi java.util.zip javax.accessibility javax.activation javax....

Global site tag (gtag.js) - Google Analytics