zoukankan      html  css  js  c++  java
  • 016 原子类

    一 .概述

    在我们之前的计数程序之中,我们知道只要保证count++是一个原子性的操作就能保证程序的线程安全性.

      当然这种常用的功能在jdk5中就出现了,这就是原子类.

    原子类都是JUC包下atomic之中,类的数量比较多.


    二 . 原子类的介绍

      原子类的操作之中可以保证是线程安全的,当我们的应用之中使用这些变量的时候,我们就需要为这些原子性进行考虑了.

      下面介绍一下常用的原子类的使用:

        @Test
        public void test() {
            AtomicInteger value = new AtomicInteger(10);
            System.out.println(value.get());
            value.set(11);
            System.out.println(value.get());
        }

    AtomicInteger,我们使用get()和set()分别取值和设置,这些都很简单.

      我们希望实现count++这样的操作: 

    @Test
        public void test2() {
            AtomicInteger value = new AtomicInteger(10);
            System.out.println(value.incrementAndGet());
        }

      我们轻松的就实现了自增这样的操作,另外我们可以保证这个自增操作是原子性的.


    三 .总结

      我们使用原子类非常的简单,因为它可以保证我们对其操作是原子性的.

      当我们需要同步一个这样的变量的时候,我们就可以考虑使用这样的变量来完成操作.

        但是这些都不是最重要的,最重要的是CAS.这个在下面进行说明.

  • 相关阅读:
    hihocoder1238 Total Highway Distance(树形dp)
    POJ2104 K-th Number(主席树)
    ansible安装使用入门
    TIDB资料收集
    elasticssearch+kibanna入门(撰写中)
    fabric-sdk-java在IDEA中的使用
    安装hyperledger fabric V1.0.1
    fabric读书笔记
    fabric默认样例的分析
    在eclipse中安装go编辑器阅读fabric代码
  • 原文地址:https://www.cnblogs.com/trekxu/p/8996735.html
Copyright © 2011-2022 走看看