Java并發(fā)編程之同步容器與并發(fā)容器詳解
一、同步容器
1、Vector——>ArrayList
- vector 是線程(Thread)同步(Synchronized)的,所以它也是線程安全的;
- Arraylist是線程異步(ASynchronized)的,是不安全的;


2、Hashtable——>HashMap
- Hashtable是synchronized,這意味著Hashtable是線程安全的,多個(gè)線程可以共享一個(gè)Hashtable;
- HashMap是非synchronized,這意味著HashMap是非線程安全的;


3、Collections集合中——>synchronizedXXX
ArrayList<Object> list = new ArrayList<>(); Collections.synchronizedList(list); HashMap<Object, Object> map = new HashMap<>(); Collections.synchronizedMap(map); Set<Object> set = new HashSet<>(); Collections.synchronizedSet(set);
以synchronizedList為例:synchronizedList返回了SynchronizedList<>(list)),SynchronizedList又是一個(gè)內(nèi)部靜態(tài)類,該內(nèi)部靜態(tài)類中的add()、set()、get()等方法都在方法內(nèi)部添加了synchronized關(guān)鍵字,如下圖:

二、并發(fā)容器
1、CopyOnWriteArrayList
- 寫(xiě)操作高效率并發(fā)并且是線程安全的;
- 讀操作無(wú)鎖的ArrayList;
2、ConcurrentHashMap
- 是HashMap的一個(gè)線程安全的、支持高效并發(fā)的版本,使用了鎖分段技術(shù)來(lái)保證線程安全;
到此這篇關(guān)于Java并發(fā)編程之同步容器與并發(fā)容器詳解的文章就介紹到這了,更多相關(guān)java同步容器與并發(fā)容器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中基于Nacos實(shí)現(xiàn)Sentinel規(guī)則持久化詳解
這篇文章主要介紹了Java中基于Nacos實(shí)現(xiàn)Sentinel規(guī)則持久化詳解,Sentinel Dashboard中添加的規(guī)則數(shù)據(jù)存儲(chǔ)在內(nèi)存,微服務(wù)停掉規(guī)則數(shù)據(jù)就消失,在?產(chǎn)環(huán)境下不合適,我們可以將Sentinel規(guī)則數(shù)據(jù)持久化到Nacos配置中?,讓微服務(wù)從Nacos獲取規(guī)則數(shù)據(jù),需要的朋友可以參考下2023-09-09
Java中@JSONField和@JsonProperty注解的用法及區(qū)別詳解
@JsonProperty和@JSONField注解都是為了解決obj轉(zhuǎn)json字符串的時(shí)候,將java bean的屬性名替換成目標(biāo)屬性名,下面這篇文章主要給大家介紹了關(guān)于Java中@JSONField和@JsonProperty注解的用法及區(qū)別的相關(guān)資料,需要的朋友可以參考下2024-06-06
Java基于裝飾者模式實(shí)現(xiàn)的圖片工具類實(shí)例【附demo源碼下載】
這篇文章主要介紹了Java基于裝飾者模式實(shí)現(xiàn)的圖片工具類,結(jié)合完整實(shí)例形式分析了裝飾者模式實(shí)現(xiàn)圖片的判斷、水印、縮放、復(fù)制等功能,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2017-09-09
Java實(shí)現(xiàn)將html字符串插入到PPT幻燈片
Java后端代碼操作PPT幻燈片時(shí),可直接在幻燈片中繪制形狀,并在形狀中添加文本字符串內(nèi)容。本篇文章主要介紹通過(guò)java實(shí)現(xiàn)將html字符串添加到PPT幻燈片的的方法,可添加文字、圖片、視頻、音頻等。以下是具體方法和步驟。2021-11-11
SpringBoot+Redis實(shí)現(xiàn)查找附近用戶的示例代碼
SpringDataRedis提供了十分簡(jiǎn)單的地理位置定位的功能,本文主要介紹了SpringBoot+Redis實(shí)現(xiàn)查找附近用戶的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02
SpringMVC中controller接收json數(shù)據(jù)的方法
這篇文章主要為大家詳細(xì)介紹了SpringMVC中controller接收json數(shù)據(jù)的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09

