千家信息网

Java同步容器和并发容器有什么作用

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇文章主要介绍"Java同步容器和并发容器有什么作用",在日常操作中,相信很多人在Java同步容器和并发容器有什么作用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"J
千家信息网最后更新 2025年12月01日Java同步容器和并发容器有什么作用

这篇文章主要介绍"Java同步容器和并发容器有什么作用",在日常操作中,相信很多人在Java同步容器和并发容器有什么作用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Java同步容器和并发容器有什么作用"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

同步容器

同步容器通过synchronized关键字修饰容器,保证同一时刻只有一个线程使用容器,从而使容器线程安全. synchronized的意思的同步.

1.Vector和ArrayList都实现了List接口,Vector对数组的操作和ArrayList都一样,区别在于Vector在可能出现线程安全的方法上都加了synchronized关键字修饰.

2.Stack是Vector的子类,Stack实现的是先进后出,在出栈入栈都进行了synchronized修饰.

3.HashTable:它实现了Map接口,操作和HashMap一样(区别:HashTable不能存null,HashMap键值都可以为null),HashTable的所有操作都加了synchronized修饰.

4.Collections提供了线程同步集合类

List list=Collections.synchronizedList(new ArrayList());Set set=Collections.synchronizedSet(new HashSet());Map map=Collections.synchronizedMap(new HashMap());

并发容器

并发容器是指允许多线程访问的容器,并保证线程安全.为了尽可能提高并发,Java并发工具包中采用多种优化方式来提高并发容器的执行效率,核心就是锁,CAS(无锁),COW(读写分离),分段锁.

1.CopyOnWriteArrayList

CopyOnWriteArrayList相当于实现了线程安全的ArrayList,在对容器写入时,Copy出一份副本数组,完成操作后把副本数组的引用赋值给容器,底层是通过ReentrantLock来保证同步. 但它通过牺牲容器的一致性来换取容器的并发(在Copy期间读取的还是旧数据),所以不能在强一致的场景下使用.

2.CopyOnWriteArraySet

CopyOnWriteArraySet和CopyOnWriteArrayList的原理一样,它是实现了CopyOnWrite机制的Set集合.

3.ConcurrentHashMap

ConcurrentHashMap相当于实现了线程安全的HashMap,Key是无序的,并且key和value都不能为null,在JDK8之前,采用分段锁的机制来提高并发,只有在操作同一段键值对是才需要加锁.JDK8以后才用CAS算法提高容器的并发.

4.ConcurrentSkipListMap

ConcurrentSkipListMap相当于实现了线程安全的TreeMap,key是有序的,key和value不允许为null,它采用跳跃表的来替代红黑树,原因是红黑树在插入或者删除节点时需要做旋转调整,导致要控制的粒度太大.而跳跃表使用的是链表,利用CAS算法实现高并发线程安全.

5.ConcurrentSkipListSet

ConcurrentSkipListSet和ConcurrentListMap的原理一样,它是实现了线程安全的TreeSet

强一致性

系统中某个数据更新后,后续任何对该数据的读取都将获取到最新的值,在任意时刻,所有节点中的数据是一样的。对于关系型数据库,要求更新过的数据能被后续的访问都能看到,这是强一致性。

弱一致性

系统中某个数据被修改后,后续对该数据的读取有可能获得更新之后的值,可能获得更新前的数据,但经过不一致的窗口这段时间,后续对该数据的读取将获得更改之后的值.

最终一致性

是弱一致性的特殊形式,存储系统在保证没有更新的情况下,最总所有对该数据的访问都会得到更新后的数据.不保证在任意时刻任意节点上的同一份数据都是相同的,但是随着时间的迁移,不同节点上的同一份数据总是在向趋同的方向变化。

到此,关于"Java同步容器和并发容器有什么作用"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

容器 数据 线程 同步 一致 安全 一致性 更新 保证 作用 学习 数组 时刻 系统 节点 关键 关键字 副本 原理 只有 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 职工网络安全知识竞赛试题 河北广电网络技术不怎么样 网络安全教育教案反思 orcl数据库增删改查 谷歌公司的服务器放在哪里 国家网络安全周举办的目的 与服务器建立连接失败 网络安全教育心得作文 怎么导出数据库MySQL 学校服务器挤进去 未转变者的好玩服务器 苹果12链接服务器 手机网络安全的事例 手机端的网络安全常识有哪些 按照网络安全法 丰台区品质软件开发技术指导 现在什么数据库比较好用 小学生国家网络安全班会PPT 网吧服务器客户机做什么系统好 简述软件开发几个阶段的内容 我人民共和国网络安全法 山东省网络技术大赛评定机构 看门狗2设置里没有连接服务器 斑马网络技术有限公司照片 c操作redis数据库 丰台区品质软件开发技术指导 江苏企业软件开发商家 兰州大学网络安全与信息化办公室 网络安全周主题党日通知 新建光伏网络安全设备
0