欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java并发编程之同步容器与并发容器详解

程序员文章站 2022-06-27 14:46:13
一、同步容器1、vector——>arraylist vector 是线程(thread)同步(synchronized)的,所以它也是线程安全的; arraylist是线程异步(a...

一、同步容器

 1、vector——>arraylist

  •  vector 是线程(thread)同步(synchronized)的,所以它也是线程安全的;
  • arraylist是线程异步(asynchronized)的,是不安全的;

Java并发编程之同步容器与并发容器详解

Java并发编程之同步容器与并发容器详解

2、hashtable——>hashmap

  • hashtable是synchronized,这意味着hashtable是线程安全的,多个线程可以共享一个hashtable;
  • hashmap是非synchronized,这意味着hashmap是非线程安全的;

Java并发编程之同步容器与并发容器详解
Java并发编程之同步容器与并发容器详解

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关键字,如下图:

Java并发编程之同步容器与并发容器详解
Java并发编程之同步容器与并发容器详解 

二、并发容器

 1、copyonwritearraylist

  • 写操作高效率并发并且是线程安全的;
  • 读操作无锁的arraylist;

 2、concurrenthashmap

  • 是hashmap的一个线程安全的、支持高效并发的版本,使用了锁分段技术来保证线程安全;

到此这篇关于java并发编程之同步容器与并发容器详解的文章就介绍到这了,更多相关java同步容器与并发容器内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!