国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

原子性操作類AtomicInteger等

2019-11-08 01:47:48
字體:
來源:轉載
供稿:網友
           JDK1.5之后的java.util.concurrent.atomic包里,多了一批原子處理類。主要用于在高并發環境下的高效程序處理。

             他比直接使用傳統的java鎖機制(阻塞的)有什么好處?

           最大的好處就是可以避免多線程的優先級倒置和死鎖情況的發生,當然高并發下的性能提升也是很重要的。

            補充:該對象在進行增加或者減少操作時候其他線程不能操作該對象;

       J2SE 5.0提供了一組atomic class來幫助我們簡化同步處理。基本工作原理是使用了同步synchronized的方法實現了對一個long, integer, 對象的增、減、賦值(更新)操作. 比如對于++運算符AtomicInteger可以將它持有的integer 能夠atomic 地遞增。在需要訪問兩個或兩個以上 atomic變量的程序代碼(或者是對單一的atomic變量執行兩個或兩個以上的操作)通常都需要被synchronize以便兩者的操作能夠被當作是一個atomic的單元。

java多線程用法-使用AtomicInteger下面通過簡單的兩個例子的對比來看一下 AtomicInteger 的強大的功能class Counter {PRivate volatile int count = 0;public synchronized void increment() {count++;  //若要線程安全執行執行count++,需要加鎖}public int getCount() {return count;}}class Counter {private AtomicInteger count = new AtomicInteger(); public void increment() {count.incrementAndGet();}       //使用AtomicInteger之后,不需要加鎖,也可以實現線程安全。public int getCount() {return count.get();}}從上面的例子中我們可以看出:使用AtomicInteger是非常的安全的那么為什么不使用記數器自加呢,例如count++這樣的,因為這種計數是線程不安全的,高并發訪問時統計會有誤,而AtomicInteger為什么能夠達到多而不亂,處理高并發應付自如呢?這是由硬件提供原子操作指令實現的。在非激烈競爭的情況下,開銷更小,速度更快。Java.util.concurrent中實現的原子操作類包括:AtomicBoolean、AtomicInteger、AtomicLong、AtomicReference。對于對象變成原子操作類通過IAtomicIntegerFieldUpdater類進行包裝;


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 台江县| 望城县| 大连市| 宁乡县| 高雄县| 漾濞| 武城县| 巩留县| 溧阳市| 璧山县| 大城县| 北宁市| 山阳县| 甘泉县| 邛崃市| 海城市| 南宁市| 遂平县| 镇沅| 张家港市| 高邮市| 宜君县| 乌拉特后旗| 龙江县| 长宁县| 嘉义县| 紫阳县| 册亨县| 阜阳市| 湘潭市| 余姚市| 五家渠市| 冕宁县| 卫辉市| 全椒县| 阳高县| 喜德县| 林周县| 旬阳县| 平昌县| 新邵县|