Java 并发编程共59篇

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

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

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

面试题:线程的生命周期在 Java 中是如何定义的?

在 Java 中,线程的生命周期由 java.lang.Thread 类定义,并通过 线程状态(Thread State) 来描述。线程的生命周期包括以下几个状态: 1. 线程的六大状态 Java 中线...
程序百科的头像-程序百科程序百科1个月前
02610

面试题:Synchronized 和 ReentrantLock 有什么区别?

Synchronized 和 ReentrantLock 都是 Java 中用于实现线程同步的机制,但它们在实现方式、功能和灵活性上有显著的区别。以下是它们的主要区别: 1. 实现方式 Synchronized...
程序百科的头像-程序百科程序百科1个月前
02511

面试题:什么是 Java 中的 ABA 问题?

ABA 问题是并发编程中的一个经典问题,主要发生在使用 CAS(Compare-And-Swap) 操作时。CAS 是一种乐观锁机制,用于实现无锁并发操作,但它在某些场景下可能会导致 ABA 问题。 1.&nb...
程序百科的头像-程序百科程序百科1个月前
0257

面试题:什么是 Java 内存模型(JMM)?

Java 内存模型(Java Memory Model, JMM) 是 Java 虚拟机(JVM)定义的一种规范,用于描述多线程环境下,线程如何与主内存和工作内存交互,以及如何保证线程之间的可见性、有序性和原子性...
程序百科的头像-程序百科程序百科1个月前
02413

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

在 Java 的标准线程池实现中,核心线程数(corePoolSize)在运行过程中是不能直接修改的。ThreadPoolExecutor 的核心线程数是通过构造函数设置的,并且在运行过程中没有提供直接修改它的方...
程序百科的头像-程序百科程序百科35天前
02312

面试题:你使用过 Java 的累加器吗?

Java 中的 累加器(Accumulator) 是 java.util.concurrent.atomic 包中提供的一种高效的工具,用于在多线程环境下进行累加操作。累加器的主要实现类是 LongAdder&nbs...
程序百科的头像-程序百科程序百科1个月前
02212

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

wait、notify 和 notifyAll 是 Java 中用于实现线程间通信和同步的关键方法,它们都是 Object 类的方法,必须在同步代码块或同步方法中使用(即需要持有对象的监视器...
程序百科的头像-程序百科程序百科1个月前
02213

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

synchronized 是 Java 中用于实现线程同步的关键字,它可以用来修饰方法或代码块,确保同一时间只有一个线程可以执行被修饰的代码。synchronized 的实现主要依赖于 Java 对象头中的&n...
程序百科的头像-程序百科程序百科1个月前
02213