Java 并发编程共59篇

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

面试题:什么是协程?Java 支持协程吗?

1. 什么是协程? **协程(Coroutine)**是一种比线程更轻量级的并发编程模型。它允许在单个线程中实现多个任务的并发执行,通过挂起和恢复的方式来切换任务,而不是依赖于操作系统的线程调度。...
程序百科的头像-程序百科程序百科1个月前
0425

面试题:Java 中什么情况会导致死锁?如何避免?

死锁(Deadlock)是多线程编程中常见的问题,指的是两个或多个线程互相持有对方所需的资源,导致所有线程都无法继续执行的情况。死锁的发生需要满足以下四个必要条件(称为死锁的四个条件): 1...
程序百科的头像-程序百科程序百科1个月前
04214

面试题:Java 中的 ThreadLocal 是如何实现线程资源隔离的?

ThreadLocal 通过为每个线程维护一个独立的变量副本,实现了线程之间的资源隔离。其核心实现依赖于 Thread 类中的 ThreadLocalMap,以下是其工作原理的详细说明: 1. ...
程序百科的头像-程序百科程序百科1个月前
0419

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

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

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

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

面试题:什么是 Java 的 TransmittableThreadLocal?

TransmittableThreadLocal 是阿里巴巴开源的一个线程本地变量工具类,它是对 Java 标准库中的 ThreadLocal 的增强。ThreadLocal 用于在多线程环境中为每个线程保存独立的变量副本,但 ThreadLoc...
程序百科的头像-程序百科程序百科1个月前
03910

面试题:什么是 Java 的 CountDownLatch?

CountDownLatch 是 Java 并发包 (java.util.concurrent) 中的一个同步工具类,用于让一个或多个线程等待其他线程完成操作。它通过一个计数器来实现线程的等待和通知机制,适用于主线程等待...
程序百科的头像-程序百科程序百科1个月前
03813

面试题:Java 中的线程安全是什么意思?

在 Java 中,线程安全是指当多个线程同时访问某个类、对象或方法时,程序的行为仍然是正确的,且不会出现数据不一致或其他并发问题。换句话说,线程安全的代码能够正确处理多线程环境下的共享资...
程序百科的头像-程序百科程序百科1个月前
0377

面试题:如何合理地设置 Java 线程池的线程数?

合理地设置线程池的线程数是优化多线程程序性能的关键。线程数设置过多或过少都会影响系统的性能和资源利用率。以下是设置线程池线程数的一些指导原则和方法: 1. 根据任务类型设置线程数 ...
程序百科的头像-程序百科程序百科1个月前
0366

面试题:你使用过 Java 中的哪些原子类?

Java 中的 原子类(Atomic Classes) 是 java.util.concurrent.atomic 包中提供的一组线程安全的类,用于在多线程环境下实现无锁的原子操作。这些类通过 CAS(Compare-And-...
程序百科的头像-程序百科程序百科1个月前
03612