JUC 面试知识点大纲

发布于:2025-08-16 ⋅ 阅读:(25) ⋅ 点赞:(0)

JUC 面试知识点大纲

一、JUC 基础概念

  • 并发与并行的区别
  • 进程、线程、纤程的概念与关系
  • 线程的生命周期及状态转换
    • NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED
  • 同步与异步、阻塞与非阻塞的区别
  • 线程安全的定义及实现方式

二、线程池(Executor 框架)

  • 线程池的核心参数
    • corePoolSize、maximumPoolSize、keepAliveTime、workQueue、handler
  • 线程池的工作原理及任务执行流程
  • 常见线程池类型及适用场景
    • FixedThreadPool
    • CachedThreadPool
    • SingleThreadExecutor
    • ScheduledThreadPoolExecutor
  • 线程池的拒绝策略及自定义方式
  • 线程池的监控与调优
  • ThreadPoolExecutor 的扩展(beforeExecute、afterExecute)

三、锁机制

  • synchronized 关键字
    • 实现原理(对象头、Monitor)
    • 锁升级过程(无锁→偏向锁→轻量级锁→重量级锁)
    • 可重入性与可见性保证
  • Lock 接口及其实现类
    • ReentrantLock(可重入锁)
    • ReentrantReadWriteLock(读写锁)
    • StampedLock(邮戳锁)
  • 锁的特性对比
    • 公平锁/非公平锁
    • 可重入锁
    • 共享锁/独占锁
  • Condition 接口的使用(await/signal/signalAll)
  • 锁优化技术(锁消除、锁粗化、偏向锁、轻量级锁)

四、原子操作类(java.util.concurrent.atomic)

  • 原子类的分类及使用场景
    • 基本类型(AtomicInteger、AtomicLong 等)
    • 引用类型(AtomicReference 等)
    • 数组类型(AtomicIntegerArray 等)
    • 字段更新器(AtomicIntegerFieldUpdater 等)
  • CAS 操作原理及 ABA 问题
  • Unsafe 类的作用及使用限制

五、并发容器

  • List/Set 相关
    • CopyOnWriteArrayList
    • CopyOnWriteArraySet
    • ConcurrentSkipListSet
  • Map 相关
    • ConcurrentHashMap(JDK7 与 JDK8 实现差异)
    • ConcurrentSkipListMap
  • Queue 相关
    • 阻塞队列(ArrayBlockingQueue、LinkedBlockingQueue 等)
    • 非阻塞队列(ConcurrentLinkedQueue)
    • 延迟队列(DelayQueue)

六、线程同步工具

  • CountDownLatch(倒计时器)
  • CyclicBarrier(循环屏障)
  • Semaphore(信号量)
  • Exchanger(交换器)
  • Phaser(阶段同步器)

七、ThreadLocal

  • 基本原理及实现(Thread、ThreadLocal、ThreadLocalMap 关系)
  • 内存泄漏问题及解决方式
  • 应用场景(线程上下文、事务管理等)
  • InheritableThreadLocal 的作用

八、并发编程模式

  • 生产者-消费者模式
  • 读写分离模式
  • 线程池模式
  • Future 模式(Future、FutureTask)

九、JDK8+ 并发新特性

  • CompletableFuture(异步编程)
  • 并行流(Parallel Stream)
  • StampedLock 的改进

十、JVM 并发相关

  • 内存模型(JMM)
    • 主内存与工作内存
    • 内存可见性、原子性、有序性
    • happens-before 规则
  • volatile 关键字
    • 内存语义(可见性、禁止重排序)
    • 实现原理(内存屏障)
    • 与 synchronized 的区别

十一、并发问题排查与调试

  • 死锁的检测与避免
  • 线程 dump 分析
  • 常用并发调试工具(jstack、jconsole、visualvm)

十二、经典并发案例分析

  • 单例模式的线程安全实现
  • 线程池的合理配置实践
  • ConcurrentHashMap 的扩容机制
  • 阻塞队列在生产者-消费者模型中的应用

网站公告

今日签到

点亮在社区的每一天
去签到