# Java 并发面试题 by 爽爽学编程

本文作者:爽爽学编程 (opens new window)

本站地址:https://code-wss.com (opens new window)

# Java 中的线程安全是什么意思?

# 线程和进程有什么区别?

# 什么是协程?Java 支持协程吗?

# 线程的生命周期在 Java 中是如何定义的?

# Java 中线程之间如何进行通信?

# 进程之间是怎么通信的?

# 你了解 Java 线程池的原理吗?

# 如何设置 Java 线程池的线程数?

# Java 线程池有哪些拒绝策略?

# Java 并发库中提供了哪些线程池实现?它们有什么区别?

# Java 中的 DelayQueue 和 ScheduledThreadPool 有什么区别?

# 什么是 Java 的 Timer?

# 你了解时间轮(Time Wheel)吗?它在 Java 中有哪些应用场景?

# 你使用过哪些 Java 并发工具类?

# 什么是 Java 的 Semaphore?

# 什么是 Java 的 CyclicBarrier?

# 什么是 Java 的 CountDownLatch?

# 什么是 Java 的 StampedLock?

# 什么是 Java 的 CompletableFuture?

# 什么是 Java 的 ForkJoinPool?

# 如何在 Java 中控制多个线程的执行顺序?

# 你使用过 Java 中的哪些阻塞队列?

# 你使用过 Java 中的哪些原子类?

# 你使用过 Java 的累加器吗?

# Synchronized 和 ReentrantLock 有什么区别?

# Java 的 synchronized 是怎么实现的?

# Java 中的 synchronized 轻量级锁是否会进行自旋?

# 当 Java 的 synchronized 升级到重量级锁时,会发生什么?

# 什么是 Java 中的锁自适应自旋?

# 如何优化 Java 中的锁?

# Java 中 ReentrantLock 的实现原理是什么?

# 说说 AQS 吧?

# 你了解 Java 中的读写锁吗?

# 什么是 Java 的 CAS(Compare-And-Swap)操作?

# 什么是 Java 内存模型(JMM)?

# 什么是 Java 中的原子性、可见性和有序性?

# 什么是 Java 的 happens-before 规则?

# 什么是 Java 中的指令重排?

# Java 中的 final 关键字是否能保证变量的可见性?

# 为什么在 Java 中需要使用 ThreadLocal?

# Java 中的 ThreadLocal 是如何实现线程资源隔离的?

# 为什么在 Java 中使用 ThreadLocal 时需要用弱引用来防止内存泄漏?

# Java 中使用 ThreadLocal 的最佳实践是什么?

# Java 中父子线程之间如何传递数据?

# ThreadLocal 的缺点?

# 为什么 Netty 不使用 ThreadLocal 而是自定义了一个 FastThreadLocal ?

# 什么是 Java 的 TransmittableThreadLocal?

# Java 中 Thread.sleep(0) 的作用是什么?

# Java 中的 wait、notify 和 notifyAll 方法有什么作用?

# Java 中什么情况会导致死锁?如何避免?

# Java 中 volatile 关键字的作用是什么?

# 什么是 Java 中的 ABA 问题?

# 什么是 Java 中的线程同步?

Java 并发面试题 by 爽爽学编程

爽爽学编程   |