在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    Atomic 原子類詳細介紹

    Atomic 原子類詳細介紹

    Atomic 翻譯成中文是原子的意思。在化學(xué)上,我們知道原子是構(gòu)成一般物質(zhì)的最小單位,在化學(xué)反應(yīng)中是不可分割的。在我們這里 Atomic 是指一個操作是不可中斷的。即使是在多個線程一起執(zhí)行的時候,一個操作一旦開始,就不會被其他線程干擾。所以,所謂原子類說簡單點就是具有原子/原子操作特征的類。并發(fā)包 java.util.concurrent 的原子類都存放在 java.util.concurrent.atomic 下,如下圖所示。

    根據(jù)操作的數(shù)據(jù)類型,可以將JUC包中的原子類分為4類

    基本類型

    使用原子的方式更新基本類型

    AtomicInteger:整型原子類

    AtomicLong:長整型原子類

    AtomicBoolean :布爾型原子類

    數(shù)組類型

    使用原子的方式更新數(shù)組里的某個元素

    AtomicIntegerArray:整型數(shù)組原子類

    AtomicLongArray:長整型數(shù)組原子類

    AtomicReferenceArray :引用類型是數(shù)組原子類

    引用類型

    AtomicReference:引用類型原子類

    AtomicMarkableReference:原子更新帶有標記的引用類型。該類將 boolean 標記與引用關(guān)聯(lián)起來,也可以解決使用 CAS 在進行原子更新時可能出現(xiàn)的 ABA 問題。

    AtomicStampedReference :原子更新帶有版本號的引用類型。該類將整數(shù)值與引用關(guān)聯(lián)起來,可用于解決原子的更新數(shù)據(jù)和數(shù)據(jù)的版本號,可以解決使用 CAS 進行原子更新時可能出現(xiàn)的 ABA問題。

    對象的屬性修改類型

    AtomicIntegerFieldUpdater:原子更新整型字段的更新器

    AtomicLongFieldUpdater:原子更新長整型字段的更新器

    AtomicReferenceFieldUpdater:原子更新引用類型里的字段

    修正: AtomicMarkableReference 不能解決ABA問題

    /**AtomicMarkableReference是將一個boolean值作是否有更改的標記,本質(zhì)就是它的版本號只有兩個,true和false,修改的時候在這兩個版本號之間來回切換,這樣做并不能解決ABA的問題,只是會降低ABA問題發(fā)生的幾率而已

    */

    public class SolveABAByAtomicMarkableReference {

    private static AtomicMarkableReference atomicMarkableReference = new

    AtomicMarkableReference(100, false);

    public static void main(String[] args) {

    Thread refT1 = new Thread(() -> {

    try {

    TimeUnit.SECONDS.sleep(1);

    } catch (InterruptedException e) {

    e.printStackTrace();

    }

    atomicMarkableReference.compareAndSet(100, 101,

    atomicMarkableReference.isMarked(), !atomicMarkableReference.isMarked());

    atomicMarkableReference.compareAndSet(101, 100,

    atomicMarkableReference.isMarked(), !atomicMarkableReference.isMarked());

    });

    Thread refT2 = new Thread(() -> {

    boolean marked = atomicMarkableReference.isMarked();

    try {

    TimeUnit.SECONDS.sleep(2);

    } catch (InterruptedException e) {

    e.printStackTrace();

    }

    boolean c3 = atomicMarkableReference.compareAndSet(100, 101,

    marked, !marked);

    System.out.println(c3); // 返回true,實際應(yīng)該返回false

    });

    refT1.start();

    refT2.start();

    }

    }

    CAS ABA 問題

    描述: 第一個線程取到了變量 x 的值 A,然后巴拉巴拉干別的事,總之就是只拿到了變量 x 的值A(chǔ)。這段時間內(nèi)第二個線程也取到了變量 x 的值 A,然后把變量 x 的值改為 B,然后巴拉巴拉干別的事,最后又把變量 x 的值變?yōu)?A (相當(dāng)于還原了)。在這之后第一個線程終于進行了變量 x 的操作,但是此時變量 x 的值還是 A,所以 compareAndSet 操作是成功。例子描述(可能不太合適,但好理解): 年初,現(xiàn)金為零,然后通過正常勞動賺了三百萬,之后正常消費了(比如買房子)三百萬。年末,雖然現(xiàn)金零收入(可能變成其他形式了),但是賺了錢是事實,還是得交稅的!

    代碼例子(以 AtomicInteger 為例)

    【關(guān)注】轉(zhuǎn)發(fā)了解更多內(nèi)容,方便后續(xù)查看

    鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
    用戶投稿
    上一篇 2022年7月5日 18:03
    下一篇 2022年7月5日 18:04

    相關(guān)推薦

    • 存儲過程語法(sql server存儲過程語法)

      今天小編給各位分享存儲過程語法的知識,其中也會對sql server存儲過程語法進行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧! oracle存儲過程基本語法…

      2022年11月26日
    • 淘寶直播開通后帶貨鏈接怎么做(淘寶直播需要開通淘寶店鋪嗎)

      直播帶貨無論是對于商家來說還是主播收益都是非??捎^的,所以不少平臺都有直播帶貨功能,一些小伙伴也想加入淘寶直播,那么淘寶直播開通后帶貨鏈接怎么做?下面小編為大家?guī)硖詫氈辈ラ_通后帶…

      2022年11月24日
    • cpu性能天梯圖2022 AMD CPU天梯圖最新排行榜出爐

      用戶在DIY自己的主機時選擇CPU是非常關(guān)鍵的,CPU可以說是電腦的大腦,大家也都想追求好一點的CPU來使用,但型號太多了,大部分的用戶都不知道目前哪一款CPU比較好用,快來看看詳…

      2022年11月24日
    • 快手限流多久能解除(快手限流什么意思)

      我相信很多人都看中了快手平臺的商機,都爭先恐后地想要搶占機會,可一些人剛剛作出一點成績,就被降權(quán)了,自己也不知道什么原因。所以今天就來聊聊快手賬號降權(quán)操作分享,趕快來看看避免違規(guī)!…

      2022年11月23日
    • Win11 22H2再出新問題Bug:無法彈出USB設(shè)備

      作為Windows 11的首次大更新,在Win11 22H2發(fā)布后并沒有帶來預(yù)想的場景,各種問題頻現(xiàn)成為了一種常態(tài)。 近日有消息稱,Win11 22H2存在一個占用沖突Bug,當(dāng)用…

      2022年11月22日
    • 美團月付300小額取現(xiàn)?美團月付取現(xiàn)300不見了

      很多上班族每天都在使用美團點外賣,你知道美團現(xiàn)在推出了一款類似花唄的產(chǎn)品嗎?可以在美團消費的時候先消費后還款,叫做美團月付,是美團推出的一款消費型產(chǎn)品,不能直接提現(xiàn)到銀行卡,只能用…

      2022年11月21日
    • AMD下一代線程撕裂者現(xiàn)身 最高96核192線程480MB緩存

      此前的消息表明,明年AMD就將發(fā)布下一代基于Zen 4架構(gòu)的全新Ryzen Threadripper 7000“Storm Peak”處理器?,F(xiàn)在,疑似其頂級型號(可能被稱作Pro…

      2022年11月18日
    • 京東店鋪類型有哪些京東入駐有什么資質(zhì)要求

      今天的互聯(lián)網(wǎng)發(fā)展迅速,讓傳統(tǒng)企業(yè)有了更多選擇,但也同樣也對剛觸網(wǎng)的商家增添了許多迷茫,近日知舟電商就收到很多商家朋友詢問京東入駐相關(guān)問題,今天知舟君就給大家分享下。 一.京東入駐準…

      2022年11月18日
    • 沒帶卡怎么在ATM機取款(無卡取款怎么操作)

      刷臉消費支付已經(jīng)十分方便,最近不少銀行根據(jù)這種刷臉技術(shù),提供了刷臉存取款的業(yè)務(wù)。我們不需要帶卡,就可以直接刷臉取款。下面讓我們來看看具體怎么操作。 刷臉取款怎么操作? 【1】我們找…

      2022年11月17日
    • 怎么刪除自己的追評(淘寶追評可以刪除嗎)

      一、淘寶店鋪每個評價類型的處理方案都是不同的,那具體哪些評價類型該如何區(qū)分呢? 1、主評為好評時:不支持修改或者刪除評價的,若中評/差評改為好評,也不可修改或刪除 ; 2、當(dāng)主評為…

      2022年11月17日

    聯(lián)系我們

    聯(lián)系郵箱:admin#wlmqw.com
    工作時間:周一至周五,10:30-18:30,節(jié)假日休息