听过JUC把,那除了ConcurrentHashMap还了解啥?
有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准
https://blog.zysicyj.top
全网最细面试题手册,支持艾宾浩斯记忆法。这是一份最全面、最详细、最高质量的 java面试题,不建议你死记硬背,只要每天复习一遍,有个大概印象就行了。 https://store.amazingmemo.com/chapterDetail/1685324709017001`
JUC (Java Util Concurrent) 概览
JUC,即Java并发包(java.util.concurrent
),是Java提供的一套并发工具类,它包含了许多在并发编程中非常有用的数据结构和算法。ConcurrentHashMap
只是其中的一部分。以下是JUC的一些重要组件:
线程池框架
Executor框架
Executor接口:简化了线程的使用,提供了一种将任务提交与任务如何运行(在哪个线程上运行)分离的机制。
Executors工具类:提供了创建不同类型线程池的工厂方法。
ThreadPoolExecutor类:线程池的实现,可以自定义线程池的各种参数。
ScheduledThreadPoolExecutor类:一个可以执行延迟或定期任务的线程池。
同步器
CountDownLatch
CountDownLatch:允许一个或多个线程等待其他线程完成操作。
CyclicBarrier
CyclicBarrier:允许一组线程互相等待,达到一个公共的障碍点(Barrier)再继续执行。
Semaphore
Semaphore:一个计数信号量,用于限制可以访问某些资源的线程数量。
Phaser
Phaser:一个更加灵活的线程同步器,可以替代
CountDownLatch
和CyclicBarrier
。
Exchanger
Exchanger:允许两个线程在一个同步点交换数据。
Locks
ReentrantLock:一个可重入的互斥锁,具有与
synchronized
相同的基本行为和语义,但更加灵活。ReadWriteLock:读写锁,允许多个线程同时读取,但只有一个线程可以写入。
StampedLock:提供了一种乐观的读策略的锁,这种锁通常用于读多写少的场景。
并发集合
ConcurrentHashMap
ConcurrentHashMap:一个线程安全的HashMap实现。
ConcurrentLinkedQueue
ConcurrentLinkedQueue:一个基于链接节点的无界线程安全队列。
ConcurrentSkipListMap
ConcurrentSkipListMap:一个线程安全的可排序的映射表。
CopyOnWriteArrayList
CopyOnWriteArrayList:一个线程安全的List实现,在写入时复制所有内容。
CopyOnWriteArraySet
CopyOnWriteArraySet:一个线程安全的Set实现,基于
CopyOnWriteArrayList
。
原子变量
AtomicInteger、AtomicLong、AtomicBoolean 等:提供了一种无锁的线程安全编程方式,用于实现原子计数器或序列生成器。
AtomicReference:提供了一个可以原子更新的对象引用。
AtomicStampedReference:原子更新带有版本号的引用类型,可以解决ABA问题。
并发工具类
Collections.synchronizedXXX:将非线程安全的集合包装成线程安全的集合。
Arrays.asList:将数组转换为列表。
JUC是Java并发编程的核心,它提供了一系列高效、可扩展且线程安全的工具,极大地简化了并发程序的开发。
最后更新于