談談你對AtomicInteger的理解

2021-08-31 09:08:18 字數 770 閱讀 9051

atomicinteger是乙個提供原子操作的integer類,通過執行緒安全的方式操作加減。十分適合高併發情況下的使用

對於全域性變數的數值型別操作 num++,若沒有加synchronized關鍵字則是執行緒不安全的,num++解析為num=num+1,明顯,這個操作不具備原子性,多執行緒時必然會出現問題。測試下:

輸出的結果為count: 9992,這個值不定,每次測試都可能不一樣,很顯然,100個執行緒跑++操作,結果並沒有像預期的那樣count: 10000。

要是換成volatile修飾count變數呢?

用了atomicinteger類後會變成什麼樣子呢?

結果每次都輸出"atomicinteger count: 10000",沒毛病。concurrent(我這裡是jdk1.7)包下提供了12種原子操作型別,如下:

concurrent包下除了提供的原子更新基本型別,還有原子更新資料、原子更新引用型別、原子更新欄位類,最常用的也就是原子更新基本型別了

談談你對Spring的理解

spring是乙個開源的輕量級的應用開發框架,其目的是用於簡化企業級應用開發,降低 的侵入性和耦合度。spring提供的ioc和aop功能,可以將容器內的元件耦合度降低至最低,即解耦,為將來的工程 的維護提供了方便。spring為系統提供了乙個整體的解決方案,開發者除了可以利用它本身具有的功能外,還...

談談你對spring的理解

回答 spring是乙個輕量級的ioc和aop容器框架。spring的優點 不講出口 spring的輕量級是是從它的大小和開銷來說的,完整的spring框架可以在乙個大小只有1mb多的jar檔案裡發布。並且spring所需的處理開銷也是微不足道的。spring是非侵入式的,spring的api是不會...

談談你對AOP的理解

系統是由許多不同的元件所組成,每乙個元件各負責一塊特定功能。除了實現自身核心功能之外,這些元件還經常承擔著額外的職責。例如日誌 事務管理和安全這樣的核心服務經常融入到自身具有核心業務邏輯的元件中去。這些系統服務經常被稱為橫切關注點,因為他們會跨越系統的多個元件。當我們需要為分散的物件引入公共行為的時...