色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

java并發編程專題(十一)----(JUC原子類)數組類型詳解

瀏覽:2日期:2022-08-29 17:37:03

上一節我們介紹過三個基本類型的原子類,這次我們來看一下數組類型: AtomicIntegerArray, AtomicLongArray, AtomicReferenceArray。其中前兩個的使用方式差不多,AtomicReferenceArray因為他的參數為引用數組,所以跟前兩個的使用方式有所不同。

1.AtomicLongArray介紹

對于AtomicLongArray, AtomicIntegerArray我們還是只介紹一個,另一個使用方式大同小異。

我們先來看看AtomicLongArray的構造函數和方法:

構造函數: AtomicLongArray(int length) //創建給定長度的新 AtomicLongArray。 AtomicLongArray(long[] array) //創建與給定數組具有相同長度的新 AtomicLongArray,并從給定數組復制其所有元素。 方法: long addAndGet(int i, long delta) //以原子方式將給定值添加到索引 i 的元素。 boolean compareAndSet(int i, long expect, long update) //如果當前值 == 預期值,則以原子方式將該值設置為給定的更新值。 long decrementAndGet(int i) //以原子方式將索引 i 的元素減1。 long get(int i) //獲取位置 i 的當前值。 long getAndAdd(int i, long delta) //以原子方式將給定值與索引 i 的元素相加。 long getAndDecrement(int i) //以原子方式將索引 i 的元素減 1。 long getAndIncrement(int i) //以原子方式將索引 i 的元素加 1。 long getAndSet(int i, long newValue) //以原子方式將位置 i 的元素設置為給定值,并返回舊值。 long incrementAndGet(int i) // 以原子方式將索引 i 的元素加1。 void lazySet(int i, long newValue)// 最終將位置 i 的元素設置為給定值。 int length() //返回該數組的長度。 void set(int i, long newValue) //將位置 i 的元素設置為給定值。 String toString() //返回數組當前值的字符串表示形式。

2.使用方式:

我們可以發現AtomicLongArray的使用方式和上一篇介紹的基本類型的原子類差不多,無非是換成了數組類型,另外方法里面的etAndAdd與ncrementAndGet我們要注意使用方式。

3.AtomicReferenceArray介紹

我們來看一下他的方法:

構造方法:

AtomicReferenceArray(E[] array) //創建與給定數組具有相同長度的新 AtomicReferenceArray,并從給定數組復制其所有元素。 AtomicReferenceArray(int length) // 創建給定長度的新 AtomicReferenceArray。 方法:boolean compareAndSet(int i, E expect, E update) //如果當前值 == 預期值,則以原子方式將位置 i 的元素設置為給定的更新值。 E get(int i) //獲取位置 i 的當前值。 E getAndSet(int i, E newValue) // 以原子方式將位置 i 的元素設置為給定值,并返回舊值。 void lazySet(int i, E newValue) //最終將位置 i 的元素設置為給定值。 int length() //返回該數組的長度。 void set(int i, E newValue) // 將位置 i 的元素設置為給定值。 String toString() //返回數組當前值的字符串表示形式。 boolean weakCompareAndSet(int i, E expect, E update) // 如果當前值 == 預期值,則以原子方式將位置 i 的元素設置為給定的更新值。

由上我們可以看到AtomicReferenceArray與前兩個的方法相比少了很多。下面我們通過一個小例子來看一下他的使用:

public class AtomicReferenceArrayTest { public static void main(String[] args) { Long[] l = new Long[4]; String[] s = new String[4]; int[] i = new int[4]; Integer[] in = new Integer[4]; AtomicReferenceArray atomicReferenceArray = new AtomicReferenceArray(l); System.out.println(atomicReferenceArray.length()); System.out.println(atomicReferenceArray.get(2)); AtomicReferenceArray atomic = new AtomicReferenceArray(4); atomic.set(0,432141); atomic.set(2,'fsafefeq'); atomic.set(3,i); System.out.println(atomic.toString()); } }

輸出結果為:

exclude patterns:4null[432141, null, fsafefeq, [I@357b2b99]

Process finished with exit code 0

說明:

1.當我們使用AtomicReferenceArray(E[] array)這個構造方法傳入一個數組對象時,該數組對象必須是引用類型,int[]不可以,但是Integer[]的可以。 2.當我們使用AtomicReferenceArray(int length)這個構造函數的時候,只要為他指定了數組大小之后,你為數組的每一位設置什么值是沒有要求的,類似于Map的形式。

以上就是java并發編程專題(十一)----(JUC原子類)數組類型詳解的詳細內容,更多關于JAVA (JUC原子類)的數組類型的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: 亚洲成人在线播放视频 | 日韩在线国产 | 欧美成人免费高清网站 | 亚洲香蕉久久一区二区三区四区 | 日韩高清在线不卡 | 俄罗斯毛片免费大全 | 免费一级欧美性大片 | av免费网站在线观看 | 国产日韩在线观看视频 | 久久99精品九九九久久婷婷 | 在线播放高清国语自产拍免费 | 成人亚洲欧美日韩中文字幕 | 日韩亚洲人成网站在线播放 | 欧美在线高清视频 | 狠狠综合久久久久综合小说网 | 一级毛片aaaaaa视频免费看 | 国产欧美日韩综合精品一区二区三区 | 欧美亚洲视频在线观看 | 97在线观看成人免费视频 | 久爱午夜精品免费视频 | 色综合夜夜嗨亚洲一二区 | 爽爽窝窝午夜精品一区二区 | 91精品国产福利尤物免费 | 国产91亚洲精品 | 国产成人亚洲毛片 | 成人午夜视频在线播放 | 亚洲欧美韩国 | 日本一区视频在线观看 | 好吊操这里只有精品 | 一区二区三区四区产品乱码伦 | 一级毛片免费不卡在线 | 美女张开腿让男人桶的动态图 | 国产精品亚洲片在线va | 久久性生大片免费观看性 | 色老头久久网 | 国产精品视频永久免费播放 | 最新最好看免费毛片基地 | 国产区高清 | 国产成人最新毛片基地 | 欧洲成人r片在线观看 | 国产97公开成人免费视频 |