最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java并發(fā)編程專題(十一)----(JUC原子類(lèi))數(shù)組類(lèi)型詳解

 更新時(shí)間:2020年07月03日 11:03:50   作者:rickiyang  
這篇文章主要介紹了JAVA JUC原子類(lèi) 數(shù)組類(lèi)型詳解的相關(guān)資料,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下

上一節(jié)我們介紹過(guò)三個(gè)基本類(lèi)型的原子類(lèi),這次我們來(lái)看一下數(shù)組類(lèi)型: AtomicIntegerArray, AtomicLongArray, AtomicReferenceArray。其中前兩個(gè)的使用方式差不多,AtomicReferenceArray因?yàn)樗膮?shù)為引用數(shù)組,所以跟前兩個(gè)的使用方式有所不同。

1.AtomicLongArray介紹

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

我們先來(lái)看看AtomicLongArray的構(gòu)造函數(shù)和方法:

構(gòu)造函數(shù):
    AtomicLongArray(int length) //創(chuàng)建給定長(zhǎng)度的新 AtomicLongArray。
    AtomicLongArray(long[] array) //創(chuàng)建與給定數(shù)組具有相同長(zhǎng)度的新 AtomicLongArray,并從給定數(shù)組復(fù)制其所有元素。
    方法:
     long addAndGet(int i, long delta) //以原子方式將給定值添加到索引 i 的元素。
     boolean compareAndSet(int i, long expect, long update) //如果當(dāng)前值 == 預(yù)期值,則以原子方式將該值設(shè)置為給定的更新值。
     long decrementAndGet(int i)       //以原子方式將索引 i 的元素減1。
     long get(int i)                   //獲取位置 i 的當(dāng)前值。
     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 的元素設(shè)置為給定值,并返回舊值。
     long incrementAndGet(int i)       // 以原子方式將索引 i 的元素加1。
     void lazySet(int i, long newValue)// 最終將位置 i 的元素設(shè)置為給定值。
     int length()                      //返回該數(shù)組的長(zhǎng)度。
     void set(int i, long newValue)    //將位置 i 的元素設(shè)置為給定值。
     String toString()                 //返回?cái)?shù)組當(dāng)前值的字符串表示形式。

2.使用方式:

我們可以發(fā)現(xiàn)AtomicLongArray的使用方式和上一篇介紹的基本類(lèi)型的原子類(lèi)差不多,無(wú)非是換成了數(shù)組類(lèi)型,另外方法里面的etAndAdd與ncrementAndGet我們要注意使用方式。

3.AtomicReferenceArray介紹

我們來(lái)看一下他的方法:

構(gòu)造方法:

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

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

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());
  }
 }

輸出結(jié)果為:

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

Process finished with exit code 0

說(shuō)明:

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

以上就是java并發(fā)編程專題(十一)----(JUC原子類(lèi))數(shù)組類(lèi)型詳解的詳細(xì)內(nèi)容,更多關(guān)于JAVA (JUC原子類(lèi))的數(shù)組類(lèi)型的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用java的注解(用在java類(lèi)的方法上的注解)方法

    使用java的注解(用在java類(lèi)的方法上的注解)方法

    這篇文章主要介紹了使用java的注解(用在java類(lèi)的方法上的注解)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Java使用FilenameFilter查找出目錄下指定后綴的文件示例

    Java使用FilenameFilter查找出目錄下指定后綴的文件示例

    這篇文章主要介紹了Java使用FilenameFilter查找出目錄下指定后綴的文件,結(jié)合實(shí)例形式分析了java基于FilenameFilter類(lèi)的文件遍歷、查找相關(guān)操作技巧,需要的朋友可以參考下
    2019-10-10
  • JAVA API 實(shí)用類(lèi) String詳解

    JAVA API 實(shí)用類(lèi) String詳解

    這篇文章主要介紹了java String的深入理解的相關(guān)資料,希望通過(guò)本文大家能理解String的用法,需要的朋友可以參考下
    2021-10-10
  • 二叉排序樹(shù)的實(shí)現(xiàn)與基本操作

    二叉排序樹(shù)的實(shí)現(xiàn)與基本操作

    二叉排序樹(shù)又稱二叉查找樹(shù)。本文主要對(duì)二叉排序樹(shù)的實(shí)現(xiàn)與基本操作進(jìn)行詳細(xì)介紹,以下代碼實(shí)現(xiàn)了:1、二叉樹(shù)的構(gòu)建;2、二叉樹(shù)的中、前、后、層序遍歷;3、二叉樹(shù)中結(jié)點(diǎn)的最大距離。下面就跟著小編一起來(lái)看下吧
    2016-12-12
  • Java Validation Api實(shí)現(xiàn)原理解析

    Java Validation Api實(shí)現(xiàn)原理解析

    這篇文章主要介紹了Java Validation Api實(shí)現(xiàn)原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 總結(jié)Java調(diào)用Python程序方法

    總結(jié)Java調(diào)用Python程序方法

    這篇文章主要介紹了總結(jié)Java調(diào)用Python程序方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 實(shí)例詳解Java中ThreadLocal內(nèi)存泄露

    實(shí)例詳解Java中ThreadLocal內(nèi)存泄露

    這一篇文章我們來(lái)分析一個(gè)Java中ThreadLocal內(nèi)存泄露的案例。分析問(wèn)題的過(guò)程比結(jié)果更重要,理論結(jié)合實(shí)際才能徹底分析出內(nèi)存泄漏的原因。
    2016-08-08
  • crawler4j抓取頁(yè)面使用jsoup解析html時(shí)的解決方法

    crawler4j抓取頁(yè)面使用jsoup解析html時(shí)的解決方法

    crawler4j對(duì)response沒(méi)有指定編碼的頁(yè)面,解析成亂碼,很讓人煩惱,下面給出解決方法,需要的朋友可以參考下
    2014-04-04
  • Maven及Springboot配置JDK版本,編碼,源碼打包等方式

    Maven及Springboot配置JDK版本,編碼,源碼打包等方式

    這篇文章主要介紹了Maven及Springboot配置JDK版本,編碼,源碼打包等方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • SpringMVC使用@Valid注解進(jìn)行數(shù)據(jù)驗(yàn)證的方法

    SpringMVC使用@Valid注解進(jìn)行數(shù)據(jù)驗(yàn)證的方法

    本篇文章主要介紹了SpringMVC使用@Valid注解進(jìn)行數(shù)據(jù)驗(yàn)證的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02

最新評(píng)論

孟津县| 清水河县| 津南区| 大新县| 叶城县| 马公市| 巴马| 温泉县| 乌鲁木齐市| 万载县| 林口县| 山东| 伊宁县| 瓮安县| 吉安市| 平武县| 中阳县| 东山县| 南京市| 马公市| 兴国县| 和硕县| 景德镇市| 常德市| 黔西| 茌平县| 澄城县| 仙游县| 白玉县| 庄河市| 上蔡县| 当雄县| 鹤壁市| 元朗区| 丽水市| 东安县| 洛浦县| 沁水县| 遂昌县| 新乡市| 来凤县|