>本文总结了Java四个核心并发工具: > Semaphore:控制同时访问资源的线程数量。 > CountDownLatch:用于一次性等待,一个线程等待多个任务完成。 > CyclicBarrier:用于多线程同步,互相等待到达屏障点。 > StampedLock:通过乐观读优化读写锁性能。 在 Java 并发编程中,、 和 都是重量级的同步器,它们位于 包(通常简称 JUC)。 是一个较为现代的、用于优化读写锁性能的锁机制,位于 包。 下面我将详细介绍它们各自的用途、工作原理以及使用场景。 --- 1. Semaphore (信号量) (信号量)用于控制同时访问特定资源的线程数量。它维护了一个内部计数器,这个计数器表示可用资源的许可数量。 核心概念 许可 (Permits): 信号量维护的一组许可。线程在访问资源前必须获取许可,在完成后必须释放许可。 资源限制: 如果初始化时设置了 $N$ 个许可,那么最多只有 $N$ 个线程可以同时执行获取许可后的代码块。 核心方法 | 方法 | 描述 | | :--- | :--- | | | 创建具有给定许可数量的信号量。 | | |...