Java1.5之前,没有所谓的直接的同步容器,只能通过Collections提供了包装接口来将非同步容器变为同步容器,其原理就是通过synchronized关键字来修饰方法。方法如下:
List list = Collections.synchronizedList(new ArrayList<>());
Set set = Collections.synchronizedSet(new HashSet<>());
Map map = Collections.synchronizedMap(new HashMap<>());
Collections提供了包装类型的底层原理是加Synchronized关键字修饰方法来控制并发,这种做法每次只允许一个线程修改或者读取,锁的粒度太大,性能很差。
所以在Java1.5之后,实现了性能更高的同步容器。
我们在以后的文章中进行逐一分析。