排序
面试题:Java 线程安全的集合有哪些?
在 Java 中,线程安全的集合是指多个线程可以同时访问和修改而不会导致数据不一致的集合。Java 提供了多种线程安全的集合类,主要分为以下几类: 1. java.util.Collections 工具类提...
面试题:Java 创建线程池有哪些方式?
在 Java 中,创建线程池的方式主要有以下几种: 1. 使用 Executors 工厂类 Executors 是 Java 提供的一个工具类,提供了多种创建线程池的静态工厂方法。以下是常见的几种线...
面试题:在 Java 中主线程如何知晓创建的子线程是否执行成功?
在 Java 中,主线程可以通过多种方式知晓创建的子线程是否执行成功。以下是几种常见的实现方式: 1. 使用 Thread.join() 方法 作用:主线程调用子线程的 join() 方法,等待子...
面试题:什么是 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...