JUC提问

Time: 2025-03-24 Monday 17:00:00

Java并发编程(JUC)核心问题集

线程控制与协作

1. 线程交替执行

  • 问题:如何控制线程按特定顺序交替执行?
  • 关键词:信号量(Semaphore)、线程协作

2. 线程等待与唤醒

  • 问题:什么是虚假唤醒(spurious wakeup)?为什么会发生?
  • 关键词:单队列、wait/notify

3. Condition机制

  • 问题:Condition是什么?与传统wait/notify相比有什么优势?
  • 关键词:多队列、精确唤醒

4. LockSupport工具

  • 问题:LockSupport的作用是什么?
  • 关键词:线程阻塞/唤醒、许可证(permit)机制

锁机制与同步

5. Synchronized关键字

  • 问题:Synchronized锁的到底是什么?
  • 关键词:对象锁、类锁、Monitor

6. 读写锁

  • 问题:读写锁如何导致死锁?如何避免?
  • 关键词:ReentrantReadWriteLock、锁升级

持有读锁不可以再持有写锁,持有写锁可以继续持有读锁

7. StampedLock

  • 问题:StampedLock的乐观读是什么?有什么优势?
  • 关键词:乐观锁、悲观锁、版本号

并发容器与工具类

8. 线程安全容器

  • 问题:如何解决ArrayList的线程安全问题?
  • 关键词:CopyOnWriteArrayList、Collections.synchronizedList

9. CountDownLatch

  • 问题:CountDownLatch的作用是什么?适用场景?
  • 关键词:线程等待、计数器

10. Semaphore

  • 问题:Semaphore的作用是什么?与其他同步工具的区别?
  • 关键词:信号量、资源控制

线程通信与数据共享

11. Callable接口

  • 问题:Callable接口是什么?与Runnable有何不同?
  • 关键词:Future、返回值、异常处理

12. ThreadLocal

  • 问题:ThreadLocal为什么会导致内存泄漏?如何避免?
  • 关键词:线程本地变量、弱引用、Entry

并发底层机制

13. volatile关键字

  • 问题:volatile的作用机制是什么?
  • 关键词:可见性、有序性、一写多读

14. CAS操作

  • 问题:什么是CAS?存在哪些问题?
  • 关键词:Compare-And-Swap、ABA问题、乐观锁

15. 原子类

  • 问题:Java中的原子类有哪些?LongAdder为什么比AtomicLong更高效?
  • 关键词:Atomic系列、LongAdder、分段累加

什么是进程什么是线程?

线程共享进程的 代码段 (Code Segment), 数据段 (Data Segment), 和 堆 (Heap)。以及网络资源,文件句柄,io权限 但不共享栈 (Stack)


JUC提问
http://example.com/2025/03/20/JUC提问/
作者
Jack Asher
发布于
2025年3月20日
许可协议