亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

                Atomic 原子類詳細(xì)介紹

                Atomic 原子類詳細(xì)介紹

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

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

                基本類型

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

                AtomicInteger:整型原子類

                AtomicLong:長整型原子類

                AtomicBoolean :布爾型原子類

                數(shù)組類型

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

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

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

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

                引用類型

                AtomicReference:引用類型原子類

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

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

                對(duì)象的屬性修改類型

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

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

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

                修正: AtomicMarkableReference 不能解決ABA問題

                /**AtomicMarkableReference是將一個(gè)boolean值作是否有更改的標(biāo)記,本質(zhì)就是它的版本號(hào)只有兩個(gè),true和false,修改的時(shí)候在這兩個(gè)版本號(hào)之間來回切換,這樣做并不能解決ABA的問題,只是會(huì)降低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,實(shí)際應(yīng)該返回false

                });

                refT1.start();

                refT2.start();

                }

                }

                CAS ABA 問題

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

                代碼例子(以 AtomicInteger 為例)

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

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

                相關(guān)推薦

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                  2022年11月17日

                聯(lián)系我們

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