当前位置: 首页 > news >正文

【Java集合类面试二十五】、有哪些线程安全的List?

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。

面试官:有哪些线程安全的List?

参考答案:

1、Vector

Vector是比较古老的API,虽然保证了线程安全,但是由于效率低一般不建议使用。

2、Collections.SynchronizedList

SynchronizedList是Collections的内部类,Collections提供了synchronizedList方法,可以将一个线程不安全的List包装成线程安全的List,即SynchronizedList。它比Vector有更好的扩展性和兼容性,但是它所有的方法都带有同步锁,也不是性能最优的List。

3、CopyOnWriteArrayList

CopyOnWriteArrayList是Java 1.5在java.util.concurrent包下增加的类,它采用复制底层数组的方式来实现写操作。当线程对此类集合执行读取操作时,线程将会直接读取集合本身,无须加锁与阻塞。当线程对此类集合执行写入操作时,集合会在底层复制一份新的数组,接下来对新的数组执行写入操作。由于对集合的写入操作都是对数组的副本执行操作,因此它是线程安全的。在所有线程安全的List中,它是性能最优的方案。

http://www.lryc.cn/news/206523.html

相关文章:

  • 分布式系统的链路追踪,让你轻松解决订单无法查看的问题!
  • 基于生产数据测试设计、测试回归
  • 装了mac os 14.0 sonoma 在腾讯会议投屏时候,无法设置麦克风权限问题
  • ARM 汇编指令 orreq 的使用
  • Python---练习:for循环 求1-100的和/所有偶数的和
  • APP逆向基础(APK流程)
  • Tomcat调试端口被占用解决办法
  • feign之间相互通信RequestInterceptor拦截器失效
  • GoLong的学习之路(十)语法之函数
  • 随笔:使用Python爬取知乎上相关问题的所有回答
  • ORB-SLAM安装过程遇到问题记录整理
  • Ubuntu22.0.4安装svn服务
  • GNSS边坡位移监测仪在自然灾害应急能力提升工程领域的应用
  • k8s客户端配置
  • 网络套接字编程
  • Node编写更新用户信息接口
  • Delphi解决 openssl DLL 与 Indy 的SSL/TLS 连接问题
  • 单片机仿真设计打包项目
  • Java练习题-输出二维数组对角线元素和
  • Python调用ctype的动态库时出现的问题记录
  • 面试算法38:每日温度
  • 流程控制语句中的顺序结构、分支结构和循环结构以及示例和详细代码解释为什么这样写(1)
  • MFC Windows 程序设计[334]之自定义编辑框(附源码)
  • MOS管特性及其几种常用驱动电路详解,电子工程师手把手教你
  • C#,数值计算——分类与推理Phylo_wpgma的计算方法与源程序
  • Spring MVC 常用的注解
  • winodos下使用VS2022编译eclipse-paho.mqtt.c并演示简单使用的 demo
  • 【Java 进阶篇】使用 Java 和 Jsoup 进行 XML 处理
  • QT图形视图框架绘制曲线图和Smith图
  • 0032【Edabit ★☆☆☆☆☆】【每秒帧数】Frames Per Second