1.什么是AtomicInteger 被因?
聽說這個類非常有用茬缩,更重要的是也非常簡單赤惊,對于我這種簡單實用主義的人來說,這個吸引力也怪大的寒屯,一下子就吸引了我荐捻,好了不扯淡了黍少,言歸正傳
什么是AtomicInteger呢?它是一個提供原子操作的Integer处面,什么概念呢厂置?一般int 數(shù)據(jù)類型的 變量i ? 在代碼中使用i++ ? 并不是線程安全的,在使用的時候魂角,如果要保證線程安全昵济,就必須使用到Synchronized 關(guān)鍵字,而AtomicInteger 則提供一種線程安全的加減操作野揪。主要用在高并發(fā)環(huán)境下的高效程序處理访忿。它是使用非阻塞算法來實現(xiàn)并發(fā)控制的。斯稳,
IBM 工程師對他做了一個更加詳細(xì)深入的介紹海铆。
http://www.ibm.com/developerworks/cn/java/j-jtp11234/
2、他比直接使用傳統(tǒng)的java鎖機(jī)制(阻塞的)有什么好處挣惰?
最大的好處就是可以避免多線程的優(yōu)先級倒置和死鎖情況的發(fā)生卧斟,當(dāng)然高并發(fā)下的性能提升也是很重要的。
3.實例:原子方式結(jié)合單例模式更新數(shù)據(jù)-AtomicInteger 我只是提一個引子憎茂,這樣的示例珍语,好像不能夠更好的反應(yīng)出AtomicInteger 的優(yōu)秀的特點。倒是突出了單例模式竖幔,害羞板乙,(????)
運行結(jié)果如下: 截取片段運行結(jié)果
參考資料:http://ifeve.com/better_atomicinteger/
http://www.cnblogs.com/Gordon-YangYiBao/archive/2012/08/07/2626422.html