Java 并发编程共63篇

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

面试题:Java 的 synchronized 是怎么实现的?

Java 的 synchronized 关键字提供了一种简单而强大的机制来确保线程安全,它通过隐式的方式实现对象或类级别的锁控制。以下是 synchronized 实现机制的详细解释: 1. 锁的对象 实例方法:当 syn...
程序百科的头像-程序百科程序百科1年前
547

面试题:在 Java 中主线程如何知晓创建的子线程是否执行成功?

在Java中,主线程想要知晓其创建的子线程是否执行成功,可以通过以下几种方式来实现: 1. 使用 Thread.join() 方法 join() 方法允许一个线程等待另一个线程完成。通过调用子线程...
程序百科的头像-程序百科程序百科1年前
537

面试题:你了解时间轮(Time Wheel)吗?有哪些应用场景?

时间轮(Time Wheel)概述 时间轮是一种用于处理定时任务的高效数据结构,常被应用于需要大量定时器的场景中。 它模仿了时钟的工作原理,通过一个循环队列来存储定时任务,并以固定的时间间隔向...
程序百科的头像-程序百科程序百科1年前
5313

面试题:如何在 Java 中控制多个线程的执行顺序?

在 Java 中控制多个线程的执行顺序是一个常见的需求,尤其是在实现特定业务逻辑或算法时。有多种方式可以实现对线程执行顺序的控制,以下是几种常用的方法: 1. 使用 join() 方法 Thread.join()...
程序百科的头像-程序百科程序百科1年前
5312

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

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

面试题:Java 线程池有哪些拒绝策略?

在 Java 的 java.util.concurrent 包中,线程池通过 ThreadPoolExecutor 类来管理任务的执行。 当提交的任务超过了线程池的最大容量(即核心线程数加上队列容量)时,就需要一种策略来处理这些...
程序百科的头像-程序百科程序百科1年前
515

面试题:Java 中 volatile 关键字的作用是什么?

volatile 是 Java 中的一个关键字,用于声明变量可以在程序的其他部分被修改,尤其是在多线程环境下。它的主要作用是保证变量的可见性和禁止指令重排序优化,但不会提供原子性操作。下面详细解...
程序百科的头像-程序百科程序百科1年前
5113

面试题: 为什么在 Java 中需要使用 ThreadLocal?

在Java中,ThreadLocal 提供了一种线程局部变量的机制,这意味着每个使用某 ThreadLocal 变量的线程都有自己独立初始化的副本。这种机制有几个关键的应用场景和优势,解释了为什么在某些情况下...
程序百科的头像-程序百科程序百科1年前
519

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

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

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

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