Java 并发编程共63篇

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

面试题:什么是 Java 的 happens-before 规则?

在Java中,happens-before 规则是Java内存模型(JMM, Java Memory Model)的一部分,用于定义程序中操作之间的部分有序关系,确保多线程环境下的可见性和顺序性。 通过这些规则,程序员可以确定...
程序百科的头像-程序百科程序百科6个月前
3113

面试题:Java 线程池中 shutdown 与 shutdownNow 的区别是什么?

在 Java 的 ExecutorService 接口中,shutdown() 和 shutdownNow() 都是用来关闭线程池的方法,但它们的行为和效果有所不同。理解两者之间的差异对于正确管理线程池的生命周期至关重要。 shutdo...
程序百科的头像-程序百科程序百科6个月前
3515

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

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

面试题:什么是 Java 的 TransmittableThreadLocal?

TransmittableThreadLocal 是阿里巴巴开源的 transmittable-thread-local 库中提供的一个类,它扩展了 Java 标准库中的 InheritableThreadLocal,旨在解决在使用线程池等会复用线程的技术时,父...
程序百科的头像-程序百科程序百科6个月前
448

面试题:什么是 Java 的 CompletableFuture?

CompletableFuture 是 Java 8 引入的一个类,位于 java.util.concurrent 包中,它是对 Future 接口的扩展和增强。CompletableFuture 提供了一种更加灵活且强大的方式来处理异步编程任务,允许你...
程序百科的头像-程序百科程序百科6个月前
5615

面试题:什么是 Java 中的原子性、可见性和有序性?

在 Java 并发编程中,原子性(Atomicity)、可见性(Visibility)和有序性(Ordering) 是 Java 内存模型(Java Memory Model, 简称 JMM)中保障多线程程序正确执行的三大核心特性。它们分别解...
程序百科的头像-程序百科程序百科6个月前
5310

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

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

面试题:Java 线程安全的集合有哪些?

在Java中,线程安全的集合类主要分为两类:传统线程安全集合和现代并发集合。以下是常见的线程安全集合及其特点: 1. 传统线程安全集合 这些集合通过 synchronized 关键字或全局锁实...
程序百科的头像-程序百科程序百科6个月前
3910

面试题:Synchronized 修饰静态方法和修饰普通方法有什么区别?

在 Java 中,synchronized 关键字可以用来修饰实例方法、静态方法或者代码块。当它用于修饰静态方法和普通(实例)方法时,存在一些重要的区别,主要体现在锁的对象以及锁定的范围上。 锁定对象...
程序百科的头像-程序百科程序百科6个月前
3415

面试题:为什么 Netty 不使用 ThreadLocal 而是自定义了一个 FastThreadLocal ?

Netty 使用 FastThreadLocal 而不是标准的 Java ThreadLocal,主要是为了提高性能和优化内存使用。 虽然 ThreadLocal 提供了线程本地存储的能力,允许每个线程拥有其变量的一个独立初始化的副本...
程序百科的头像-程序百科程序百科6个月前
418