美文网首页
高并发-A01-如何保证容器是线程安全的

高并发-A01-如何保证容器是线程安全的

作者: Walter_wsl | 来源:发表于2018-12-26 10:05 被阅读0次

Java提供了不同层面的线程安全支持。在传统集合框架内部,除了Hashtable等同步容器,还提供了所谓的同步包装器(SynchronizedWrapper),我们可以调用Collections工具类提供的包装方法,来获取一个同步的包装容器(如Collections.synchronizedMap),但是它们都是利用非常粗粒度的同步方式,在高并发情况下,性能比较低下。

另外,更加普遍的选择是利用并发包提供的线程安全容器类,它提供了:

各种并发容器,比如ConcurrentHashMap、CopyOnWriteArrayList。

各种线程安全队列(Queue/Deque),如ArrayBlockingQueue、SynchronousQueue。

各种有序容器的线程安全版本等。

具体保证线程安全的方式,包括有从简单的synchronize方式,到基于更加精细化的,比如基于分离锁实现的ConcurrentHashMap等并发实现等。具体选择要看开发的场景需求,总体来说,并发包内提供的容器通用场景,远优于早期的简单同步实现。

相关文章

  • 高并发-A01-如何保证容器是线程安全的

    Java提供了不同层面的线程安全支持。在传统集合框架内部,除了Hashtable等同步容器,还提供了所谓的同步包装...

  • 第一章

    Java并发编程与高并发解决方案知识点:线程安全;线程封闭;线程调度;同步容器;并发容器;AQS;J.UC 高并发...

  • java并发学习

    java 高并发 基本概念 并发: 多个线程操作相同的资源,保证线程安全,合理使用资源 高并发: 服务能同时处理很...

  • Java多线程相关知识点汇总

    1.ThreadLocal2.如何保证高并发场景下的线程安全?3.JUC(java.util.concurrent...

  • Spring如何处理线程并发:ThreadLocal

    SpringMVC是单例的,高并发情况下,如何保证性能的? 按照传统经验,如果某个对象是非线程安全的,在多线程环境...

  • Java多线程

    目录 什么是多线程?引入多线程的意义何在? 并行和并发 线程安全 线程状态 如何保证线程安全? 创建线程的三种方法...

  • 并发—高并发

    并发:多个线程操作相同的资源,保证线程安全,合理使用资源高并发:服务能同时处理很多请求,提高程序性能 线程安全性 ...

  • Linux多线程服务端编程笔记 第一章

    本文解决如下几个问题: 如何实现一个线程安全的容器,以及这个线程安全的容器什么时候是不安全的; 构造函数中,为保证...

  • 成为Java顶尖程序员,先过了下面问题!(四)

    四、多线程/并发 1.如何创建线程?如何保证线程安全? 创建线程有三种方法: MyThread继承Thread, ...

  • Redis面试问题

    一 如何保证redis高并发 二 如何保证redis高可用 三 redis的过期策略 四 redis的线程模型 五...

网友评论

      本文标题:高并发-A01-如何保证容器是线程安全的

      本文链接:https://www.haomeiwen.com/subject/jmrtpxtx.html