排序
面试题:什么是 Java 的 Timer?
在 Java 中,Timer 是一个用于调度未来某个时间点执行一次或周期性执行任务的工具类。它位于 java.util 包中,通过创建一个后台线程来执行计划的任务。 尽管 Timer 类提供了一种相对简单的方式...
面试题:你了解时间轮(Time Wheel)吗?有哪些应用场景?
时间轮(Time Wheel)概述 时间轮是一种用于处理定时任务的高效数据结构,常被应用于需要大量定时器的场景中。 它模仿了时钟的工作原理,通过一个循环队列来存储定时任务,并以固定的时间间隔向...
面试题:你使用过哪些 Java 并发工具类?
在 Java 并发编程中,我使用过以下常用的并发工具类(均属于 java.util.concurrent 包),它们各自适用于不同的并发控制和线程协作场景: ✅ 1. CountDownLatch(倒计数锁存器) 📌 使用场景: ...
面试题:什么是 Java 的 Semaphore?
Java 中的 Semaphore 是 java.util.concurrent 包提供的一个资源访问控制工具类,用于限制同时访问的线程数量,从而实现对共享资源的并发控制。它是基于 AQS(AbstractQueuedSynchronizer) 实...
面试题:什么是 Java 的 CyclicBarrier?
Java 中的 CyclicBarrier(循环屏障)是 java.util.concurrent 包提供的一个同步工具类,用于协调多个线程在某个“屏障点”(Barrier Point)等待彼此,直到所有线程都到达后再一起继续执行。它...
面试题:什么是 Java 的 CountDownLatch?
Java 中的 CountDownLatch(倒计数锁存器)是 java.util.concurrent 包提供的一个同步工具类,用于协调多个线程之间的执行顺序。它的核心功能是允许一个或多个线程等待一组操作完成后再继续执行...
面试题:什么是 Java 的 StampedLock?
StampedLock 是 Java 8 引入的一种锁机制,位于 java.util.concurrent.locks 包中。 它提供了一种比传统的读写锁(如 ReentrantReadWriteLock)更灵活和高效的替代方案,特别适用于读操作远多于...
面试题:什么是 Java 的 ForkJoinPool?
Java 的 ForkJoinPool 是 Java 7 引入的一个线程池实现,专门设计用于执行可以递归分解为更小任务的工作窃取算法(work-stealing algorithm)。它特别适用于那些能够被分解成许多相似的小任务的...
面试题:如何在 Java 中控制多个线程的执行顺序?
在 Java 中控制多个线程的执行顺序是一个常见的需求,尤其是在实现特定业务逻辑或算法时。有多种方式可以实现对线程执行顺序的控制,以下是几种常用的方法: 1. 使用 join() 方法 Thread.join()...
面试题:你使用过 Java 中的哪些阻塞队列?
在 Java 中,阻塞队列(BlockingQueue) 是 java.util.concurrent 包下的一个接口,它是线程安全、支持阻塞操作的队列,常用于生产者-消费者模型等并发场景。 我在项目中使用过以下几种常见的 ...