Java 并发编程共59篇

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

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

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

面试题:Java 创建线程池有哪些方式?

在 Java 中,创建线程池的方式主要有以下几种: 1. 使用 Executors 工厂类 Executors 是 Java 提供的一个工具类,提供了多种创建线程池的静态工厂方法。以下是常见的几种线...
程序百科的头像-程序百科程序百科1个月前
02610

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

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

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

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

面试题:ThreadLocal 的缺点?

ThreadLocal 是 Java 中用于实现线程本地存储的强大工具,但它也存在一些缺点和潜在问题。以下是 ThreadLocal 的主要缺点: 1. 内存泄漏问题 原因: ThreadLocal 的值存储...
程序百科的头像-程序百科程序百科1个月前
0507

面试题:你使用过 Java 中的哪些阻塞队列?

Java 中的 阻塞队列(BlockingQueue) 是 java.util.concurrent 包中提供的一种线程安全的队列实现。它支持在队列为空时阻塞获取操作,在队列满时阻塞插入操作。以下是 Jav...
程序百科的头像-程序百科程序百科1个月前
03911

面试题:Java 线程安全的集合有哪些?

在 Java 中,线程安全的集合是指多个线程可以同时访问和修改而不会导致数据不一致的集合。Java 提供了多种线程安全的集合类,主要分为以下几类: 1. java.util.Collections 工具类提...
程序百科的头像-程序百科程序百科1个月前
04513

面试题:如何优化 Java 中的锁的使用?

在 Java 中,锁是保证线程安全的重要机制,但不合理的使用锁可能会导致性能问题,如死锁、锁竞争、上下文切换开销等。以下是一些优化锁使用的常见方法: 1. 减少锁的粒度 细化锁的范围:只对必...
程序百科的头像-程序百科程序百科1个月前
0285

面试题:什么是 Java 的 Timer?

Java 的 Timer 是一个用于调度任务在指定时间或按固定间隔执行的工具类。它位于 java.util 包中,通常用于安排一次性或重复性的任务。 主要特点: 单线程执行:Timer 使用单个后台线程来执行所...
程序百科的头像-程序百科程序百科1个月前
0488

面试题:为什么 Netty 不使用 ThreadLocal 而是自定义了一个 FastThreadLocal?

Netty 是一个高性能的网络框架,对性能的要求非常高。虽然 Java 的 ThreadLocal 提供了线程本地存储的功能,但它在高并发场景下存在一些性能瓶颈。为了进一步提升性能,Netty 自定义...
程序百科的头像-程序百科程序百科1个月前
0406