Java 并发编程共63篇

Java 并发编程是高性能应用开发的重要环节。Java 并发面试题的考察重点包括线程的创建与管理、线程池的使用、同步机制(如锁、volatile 关键字)、原子类、并发容器、AQS 框架、CAS 原理、线程安全问题的排查以及高并发场景下的性能优化。

面试题:什么是 Java 的 ForkJoinPool?

Java 的 ForkJoinPool 是 Java 7 引入的一个线程池实现,专门设计用于执行可以递归分解为更小任务的工作窃取算法(work-stealing algorithm)。它特别适用于那些能够被分解成许多相似的小任务的...
程序百科的头像-程序百科程序百科1个月前
2412

面试题: Java 线程池核心线程数在运行过程中能修改吗?如何修改?

在 Java 的 ThreadPoolExecutor 中,核心线程数(core pool size)默认情况下是在创建线程池实例时设定的,并且在运行期间通常是固定的。 然而,在某些情况下你可能需要动态调整核心线程数以适...
程序百科的头像-程序百科程序百科1个月前
4012

面试题:你了解 Java 线程池的原理吗?

是的,我了解 Java 线程池的原理。线程池(Thread Pool)是 Java 并发编程中非常重要的一个机制,它的核心目的是复用线程、提高性能、管理并发资源。Java 中线程池的核心实现类是 ThreadPoolExe...
程序百科的头像-程序百科程序百科1个月前
2312

面试题:Java 中什么情况会导致死锁?如何避免?

在Java中,死锁是指两个或多个线程处于互相等待的状态,每个线程都在等待其他线程释放资源,从而导致所有涉及的线程都无法继续执行。这种情况通常发生在多线程环境下,当线程需要同时获取多个锁...
程序百科的头像-程序百科程序百科1个月前
3711

面试题:什么是 Java 中的锁自适应自旋?

在 Java 中,锁自适应自旋(Adaptive Spinning)是一种优化同步性能的技术,主要应用于 synchronized 关键字背后的重量级锁机制。 这一技术旨在减少线程因获取锁而进入阻塞状态的频率,从而提高...
程序百科的头像-程序百科程序百科1个月前
3711

面试题:Java 中的 wait、notify 和 notifyAll 方法有什么作用?

在Java中,wait()、notify() 和 notifyAll() 方法是用于线程间通信的关键方法,它们都定义在 Object 类中,并且必须与同步机制(如 synchronized 方法或代...
程序百科的头像-程序百科程序百科1个月前
3811

面试题:你使用过 Java 中的哪些阻塞队列?

在 Java 中,阻塞队列(BlockingQueue) 是 java.util.concurrent 包下的一个接口,它是线程安全、支持阻塞操作的队列,常用于生产者-消费者模型等并发场景。 我在项目中使用过以下几种常见的 ...
程序百科的头像-程序百科程序百科1个月前
4011

面试题:Java 中的 synchronized 轻量级锁是否会进行自旋?

在 Java 中,synchronized 的实现涉及到几种不同的锁状态,包括无锁状态、偏向锁、轻量级锁和重量级锁。这些状态之间的转换是根据运行时的并发情况动态调整的。 对于轻量级锁来说,它并不直接涉...
程序百科的头像-程序百科程序百科1个月前
3711

面试题:什么是 Java 的 StampedLock?

StampedLock 是 Java 8 引入的一种锁机制,位于 java.util.concurrent.locks 包中。 它提供了一种比传统的读写锁(如 ReentrantReadWriteLock)更灵活和高效的替代方案,特别适用于读操作远多于...
程序百科的头像-程序百科程序百科1个月前
3711

面试题:ThreadLocal 的缺点?

尽管 ThreadLocal 提供了线程本地存储的能力,使得每个线程可以拥有变量的一个独立初始化的副本,但它也存在一些缺点和潜在的问题: 1. 内存泄漏风险 类加载器相关的内存泄漏:如果 ThreadLocal...
程序百科的头像-程序百科程序百科1个月前
4611