• Java多线程—原子类


    原子性

    原子性是指一个事物的操作是不可分割的,要么都发生,要么都不发生。原子是不可分割的最小单位

    Java原子类

    概述:java从JDK1.5开始提供了java.util.concurrent.atomic 包(简称Atomic包),这个包中的原子操作类提供了一种用法简单,性能高效,线程安全地更新一个变量的方式。

    atomic包里面一共提供了13个类,分为4种类型,分别是:原子更新基本类型,原子更新数组,原子更新引用,原子更新属性。

    对于是需要简单的递增或者递减的需求场景,使用synchronized关键字和lock固然可以实现,但代码写的会略显冗余,且性能会有影响,此时用原子类更加方便。

    原子更新基本类型类

    常用的API方法:

    // 以原子方式将给定值与当前值相加,可用于线程中的计数使用,(返回更新的值)。
    int addAndGet(int delta)
    
    // 以原子方式将给定值与当前值相加,可用于线程中的计数使用,(返回以前的值)
    int getAndAdd(int delta)
    
    // 以原子方式将当前值加 1(返回更新的值)
    int incrementAndGet()
    
    // 以原子方式将当前值加 1(返回以前的值)
    int getAndIncrement() 
    
    // 以原子方式设置为给定值(返回旧值)
    int getAndSet(int newValue)
    
    // 以原子方式将当前值减 1(返回更新的值)
    int decrementAndGet() :
    
    // 以原子方式将当前值减 1(返回以前的值)
    int getAndDecrement()
    
    // 获取当前值
    get()
    
  • 相关阅读:
    算法-对分查找(二分查找)C++实现
    Android Studio简单设置
    一起talk C栗子吧(第八回:C语言实例--素数)
    Maven生命周期
    java8_api_日期时间
    UITableviewcell的性能问题
    iOS开发25个性能调优技巧
    iOS9新特性
    iOS9 3DTouch、ShortcutItem、Peek And Pop技术一览
    iOS网络访问之使用AFNetworking
  • 原文地址:https://www.cnblogs.com/hanliukui/p/16175403.html
Copyright © 2020-2023  润新知