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

作者:小志的博客 时间:2023-10-17 04:06:23 

一、同步容器

 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的一个线程安全的、支持高效并发的版本,使用了锁分段技术来保证线程安全;

来源:https://wwwxz.blog.csdn.net/article/details/117637437

标签:java,同步,并发,容器
0
投稿

猜你喜欢

  • 一篇文章带你了解Java SpringMVC返回null

    2023-11-24 15:18:03
  • RocketMQ集群消费与广播消费模式

    2021-10-16 07:20:45
  • Android Studio实现智能聊天

    2021-10-03 09:56:18
  • 利用Spring Data MongoDB持久化文档数据的方法教程

    2023-05-05 02:36:54
  • java客户端登陆服务器用户名验证

    2023-11-09 07:03:09
  • java实现Dijkstra算法

    2021-09-02 23:14:15
  • java编写简易贪吃蛇游戏

    2021-08-03 02:53:49
  • Android编程实现启动界面的方法分析

    2022-02-18 14:25:27
  • Android基于opencv实现多通道分离与合并

    2022-05-04 09:49:29
  • 使用 Lambda 取代 Android 中的匿名类

    2023-11-16 14:01:04
  • Java枚举类型enum的详解及使用

    2023-08-02 14:23:57
  • C#操作注册表之RegistryKey类

    2022-12-11 06:12:53
  • C#非矩形窗体实现方法

    2023-04-09 15:11:39
  • Java线程池的几种实现方法和区别介绍

    2023-12-12 12:46:04
  • bs架构和cs架构的区别_动力节点Java学院整理

    2021-09-18 22:06:18
  • C#使用委托实现的快速排序算法实例

    2022-01-22 18:29:52
  • Android Studio 在项目中引用第三方jar包的方法

    2023-07-18 22:05:49
  • 解析Java设计模式编程中命令模式的使用

    2023-11-12 04:49:45
  • c++ 虚继承,多继承相关总结

    2022-11-19 12:09:35
  • C++类中六个默认的成员函数详解

    2022-11-25 10:46:30
  • asp之家 软件编程 m.aspxhome.com