排序
面试题:什么是 Java 中的 ABA 问题?
ABA 问题是并发编程中的一个经典问题,主要发生在使用 CAS(Compare-And-Swap) 操作时。CAS 是一种乐观锁机制,用于实现无锁并发操作,但它在某些场景下可能会导致 ABA 问题。 1.&nb...
面试题:Java 中 volatile 关键字的作用是什么?
volatile 是 Java 中的一个关键字,用于修饰变量,主要作用是保证变量的可见性和禁止指令重排序。它在多线程编程中非常重要,尤其是在需要共享变量的场景中。 1. volatile 的作用 (1...
面试题:Java 中什么情况会导致死锁?如何避免?
死锁(Deadlock)是多线程编程中常见的问题,指的是两个或多个线程互相持有对方所需的资源,导致所有线程都无法继续执行的情况。死锁的发生需要满足以下四个必要条件(称为死锁的四个条件): 1...
面试题:Java 中的 wait、notify 和 notifyAll 方法有什么作用?
wait、notify 和 notifyAll 是 Java 中用于实现线程间通信和同步的关键方法,它们都是 Object 类的方法,必须在同步代码块或同步方法中使用(即需要持有对象的监视器...
面试题:Java 中 Thread.sleep(0)的作用是什么?
Thread.sleep(0) 是 Java 中一个特殊的用法,它的作用并不是让线程休眠,而是提示线程调度器重新调度当前线程。具体来说,它的行为和作用如下: 1. 作用 重新触发线程调度:调用 Thr...
面试题:Java 中 Thread.sleep 和 Thread.yield 的区别?
Thread.sleep 和 Thread.yield 都是 Java 中用于控制线程行为的方法,但它们的用途和行为有显著区别。 1. Thread.sleep 作用:使当前线程暂停执行一段指定的时间(进入阻塞...
面试题:什么是 Java 的 TransmittableThreadLocal?
TransmittableThreadLocal 是阿里巴巴开源的一个线程本地变量工具类,它是对 Java 标准库中的 ThreadLocal 的增强。ThreadLocal 用于在多线程环境中为每个线程保存独立的变量副本,但 ThreadLoc...
面试题:为什么 Netty 不使用 ThreadLocal 而是自定义了一个 FastThreadLocal?
Netty 是一个高性能的网络框架,对性能的要求非常高。虽然 Java 的 ThreadLocal 提供了线程本地存储的功能,但它在高并发场景下存在一些性能瓶颈。为了进一步提升性能,Netty 自定义...
面试题:ThreadLocal 的缺点?
ThreadLocal 是 Java 中用于实现线程本地存储的强大工具,但它也存在一些缺点和潜在问题。以下是 ThreadLocal 的主要缺点: 1. 内存泄漏问题 原因: ThreadLocal 的值存储...
面试题:Java 中的 InheritableThreadLocal 是什么?
InheritableThreadLocal 是 Java 中 ThreadLocal 的一个扩展类,它允许子线程继承父线程的线程本地变量。与 ThreadLocal 不同,InheritableThreadLocal 在创建子线程时,会自动将父线程的线程本...