排序
面试题:如何在 Java 中控制多个线程的执行顺序?
在 Java 中,线程的执行顺序是由操作系统的线程调度器决定的,通常情况下是无法直接控制的。然而,在某些场景下,我们需要确保多个线程按照特定的顺序执行。以下是几种常见的控制线程执行顺序的...
面试题:什么是 Java 的 ForkJoinPool?
ForkJoinPool 是 Java 7 引入的一个线程池实现,位于 java.util.concurrent 包中。它是专门为支持 分治算法(Divide-and-Conquer)和 并行任务 而设计的。ForkJo...
面试题:什么是 Java 的 CompletableFuture?
CompletableFuture 是 Java 8 引入的一个类,位于 java.util.concurrent 包中。它是 Future 接口的一个实现,提供了更强大的异步编程能力。CompletableFuture 不仅支...
面试题:什么是 Java 的 StampedLock?
StampedLock 是 Java 8 引入的一种新的锁机制,位于 java.util.concurrent.locks 包中。它提供了三种模式的锁控制:写锁、悲观读锁和乐观读锁。StampedLock 的设计旨在提供更高的并发性能,尤其...
面试题:什么是 Java 的 CountDownLatch?
CountDownLatch 是 Java 并发包 (java.util.concurrent) 中的一个同步工具类,用于让一个或多个线程等待其他线程完成操作。它通过一个计数器来实现线程的等待和通知机制,适用于主线程等待...
面试题:什么是 Java 的 CyclicBarrier?
CyclicBarrier 是 Java 并发包 (java.util.concurrent) 中的一个同步工具类,用于让一组线程互相等待,直到所有线程都到达某个屏障点(Barrier Point)后再继续执行。它可以用于多线程任务...
面试题:什么是 Java 的 Semaphore?
Semaphore 是 Java 并发包 (java.util.concurrent) 中的一个同步工具类,用于控制同时访问某个资源的线程数量。它通过维护一组许可证(permits)来实现资源的访问控制,适用于限流、资源池...
面试题:你使用过哪些 Java 并发工具类?
Java 提供了丰富的并发工具类,位于 java.util.concurrent 包中,用于简化多线程编程并提高性能。以下是我使用过的一些常见 Java 并发工具类及其应用场景: 1. ExecutorService&...
面试题:你了解时间轮(Time Wheel)吗?有哪些应用场景?
时间轮(Time Wheel)是一种高效的定时任务调度算法,常用于实现延迟任务或周期性任务的调度。它的核心思想是通过一个循环数组(类似于时钟的表盘)来表示时间,每个槽(slot)代表一个时间间隔...
面试题:什么是 Java 的 Timer?
Java 的 Timer 是一个用于调度任务在指定时间或按固定间隔执行的工具类。它位于 java.util 包中,通常用于安排一次性或重复性的任务。 主要特点: 单线程执行:Timer 使用单个后台线程来执行所...