Java并发编程之同步容器与并发容器详解
程序员文章站
2022-06-27 14:46:13
一、同步容器1、vector——>arraylist vector 是线程(thread)同步(synchronized)的,所以它也是线程安全的; arraylist是线程异步(a...
一、同步容器
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并发编程之同步容器与并发容器详解的文章就介绍到这了,更多相关java同步容器与并发容器内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
上一篇: 固定定位position:fixed实现高度自适应的教程
下一篇: 虚拟主机日志的保留与提取的问答