您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Java并發編程之同步容器與并發容器的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Java并發編程之同步容器與并發容器的示例分析”這篇文章吧。
1、Vector——>ArrayList
vector 是線程(Thread)同步(Synchronized)的,所以它也是線程安全的;
Arraylist是線程異步(ASynchronized)的,是不安全的;
2、Hashtable——>HashMap
Hashtable是synchronized,這意味著Hashtable是線程安全的,多個線程可以共享一個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又是一個內部靜態類,該內部靜態類中的add()、set()、get()等方法都在方法內部添加了synchronized關鍵字,如下圖:
1、CopyOnWriteArrayList
寫操作高效率并發并且是線程安全的;
讀操作無鎖的ArrayList;
2、ConcurrentHashMap
是HashMap的一個線程安全的、支持高效并發的版本,使用了鎖分段技術來保證線程安全;
以上是“Java并發編程之同步容器與并發容器的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。