Java 并发编程共59篇

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

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

在 Java 中,线程的执行顺序是由操作系统的线程调度器决定的,通常情况下是无法直接控制的。然而,在某些场景下,我们需要确保多个线程按照特定的顺序执行。以下是几种常见的控制线程执行顺序的...
程序百科的头像-程序百科程序百科1个月前
02515

面试题:Java 中 Thread.sleep(0)的作用是什么?

Thread.sleep(0) 是 Java 中一个特殊的用法,它的作用并不是让线程休眠,而是提示线程调度器重新调度当前线程。具体来说,它的行为和作用如下: 1. 作用 重新触发线程调度:调用 Thr...
程序百科的头像-程序百科程序百科1个月前
02615

面试题:说说 AQS吧?

AQS(AbstractQueuedSynchronizer) 是 Java 并发编程中的一个核心框架,位于 java.util.concurrent.locks 包中。它是构建锁和其他同步工具(如 ReentrantLock、CountDownLatch、Semaphore 等)...
程序百科的头像-程序百科程序百科1个月前
03215

面试题: 你了解 Java 中的读写锁吗?

是的,Java 中的读写锁是一种特殊的锁机制,允许多个线程同时读取共享资源,但在写操作时需要独占锁。这种机制可以提高并发性能,特别是在读多写少的场景中。 Java 提供了 ReentrantReadWr...
程序百科的头像-程序百科程序百科29天前
04915

面试题:Java 线程池内部任务出异常后,如何知道是哪个线程出了异常?

在 Java 线程池中,如果任务执行过程中抛出异常,默认情况下异常会被线程池捕获并记录,但不会直接告诉你具体是哪个线程出了问题。为了定位异常发生的线程和任务,可以通过以下几种方式来实现:...
程序百科的头像-程序百科程序百科29天前
02814

面试题:Java 并发库中提供了哪些线程池实现?它们有什么区别?

Java 并发库(java.util.concurrent)提供了多种线程池实现,主要通过 Executors 工具类来创建。这些线程池实现各有特点,适用于不同的场景。以下是常见的线程池实现及其区别: 1.&nb...
程序百科的头像-程序百科程序百科29天前
05114

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

死锁(Deadlock)是多线程编程中常见的问题,指的是两个或多个线程互相持有对方所需的资源,导致所有线程都无法继续执行的情况。死锁的发生需要满足以下四个必要条件(称为死锁的四个条件): 1...
程序百科的头像-程序百科程序百科1个月前
04214

面试题:Java 中如何创建多线程?

在 Java 中,创建多线程主要有以下几种方式: 1. 继承 Thread 类 通过继承 Thread 类并重写 run() 方法来创建线程。 步骤: 创建一个类并继承 Thread。 重...
程序百科的头像-程序百科程序百科1个月前
02914

面试题:什么是 Java 的 ForkJoinPool?

ForkJoinPool 是 Java 7 引入的一个线程池实现,位于 java.util.concurrent 包中。它是专门为支持 分治算法(Divide-and-Conquer)和 并行任务 而设计的。ForkJo...
程序百科的头像-程序百科程序百科1个月前
04714

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

在 Java 线程池中,当任务无法被处理时(例如任务队列已满且线程数达到最大值),线程池会触发拒绝策略。Java 提供了四种内置的拒绝策略,均实现了 RejectedExecutionHandler 接口。...
程序百科的头像-程序百科程序百科1个月前
04413