排序
面试题:Java 中 Thread.sleep(0)的作用是什么?
Thread.sleep(0) 是 Java 中一个特殊的用法,它的作用并不是让线程休眠,而是提示线程调度器重新调度当前线程。具体来说,它的行为和作用如下: 1. 作用 重新触发线程调度:调用 Thr...
面试题:线程的生命周期在 Java 中是如何定义的?
在 Java 中,线程的生命周期由 java.lang.Thread 类定义,并通过 线程状态(Thread State) 来描述。线程的生命周期包括以下几个状态: 1. 线程的六大状态 Java 中线...
面试题:Synchronized 和 ReentrantLock 有什么区别?
Synchronized 和 ReentrantLock 都是 Java 中用于实现线程同步的机制,但它们在实现方式、功能和灵活性上有显著的区别。以下是它们的主要区别: 1. 实现方式 Synchronized...
面试题:什么是 Java 中的 ABA 问题?
ABA 问题是并发编程中的一个经典问题,主要发生在使用 CAS(Compare-And-Swap) 操作时。CAS 是一种乐观锁机制,用于实现无锁并发操作,但它在某些场景下可能会导致 ABA 问题。 1.&nb...
面试题:什么是 Java 内存模型(JMM)?
Java 内存模型(Java Memory Model, JMM) 是 Java 虚拟机(JVM)定义的一种规范,用于描述多线程环境下,线程如何与主内存和工作内存交互,以及如何保证线程之间的可见性、有序性和原子性...
面试题: Java 线程池核心线程数在运行过程中能修改吗?如何修改?
在 Java 的标准线程池实现中,核心线程数(corePoolSize)在运行过程中是不能直接修改的。ThreadPoolExecutor 的核心线程数是通过构造函数设置的,并且在运行过程中没有提供直接修改它的方...
面试题:你使用过 Java 的累加器吗?
Java 中的 累加器(Accumulator) 是 java.util.concurrent.atomic 包中提供的一种高效的工具,用于在多线程环境下进行累加操作。累加器的主要实现类是 LongAdder&nbs...
面试题:Java 中的 wait、notify 和 notifyAll 方法有什么作用?
wait、notify 和 notifyAll 是 Java 中用于实现线程间通信和同步的关键方法,它们都是 Object 类的方法,必须在同步代码块或同步方法中使用(即需要持有对象的监视器...
面试题:Java 的 synchronized 是怎么实现的?
synchronized 是 Java 中用于实现线程同步的关键字,它可以用来修饰方法或代码块,确保同一时间只有一个线程可以执行被修饰的代码。synchronized 的实现主要依赖于 Java 对象头中的&n...