审核解析结果
- 任务 ID
- job_df38be00ebd443cea7f14360931d189f
- 任务类型
- 提取面经
- 状态
- 已确认
- 尝试次数
- 8
来源上下文
Java八股(并发).md
src_d56c6f68bef64843bc0edc9ff0035e78
创建于 2026/03/28 17:54,最近更新时间 2026/04/07 12:16
候选题(115)
什么是线程和进程?二者有什么关系、区别及优缺点?
程序计数器为什么是线程私有的?
虚拟机栈和本地方法栈为什么是线程私有的?
并发与并行有什么区别?
同步和异步有什么区别?
为什么要使用多线程?
Java 是怎么解决并发问题的?
什么是守护线程?
线程安全有哪些实现思路?
使用多线程可能带来什么问题?
线程的生命周期和状态有哪些?
为什么 JVM 没有区分 READY 和 RUNNING 两种状态?
什么是上下文切换?为什么频繁切换会影响性能?
什么是线程死锁?产生死锁的四个必要条件是什么?
如何预防和避免线程死锁?
sleep() 和 wait() 有什么区别?
为什么 wait() 方法不定义在 Thread 中?
Thread.sleep()、Object.wait()、Condition.await()、LockSupport.park() 有什么区别?
可以直接调用 Thread 的 run 方法吗?
Runnable 和 Callable 有什么区别?
什么是 volatile?它能保证什么,不能保证什么?
volatile 有哪些应用场景?
什么是指令重排序?为什么会发生?如何避免?
什么是内存屏障?
什么是 JMM?为什么需要 JMM?
JMM 是如何抽象线程和主内存之间关系的?
Java 内存区域和 JMM 有什么区别?
什么是 happens-before 原则?
happens-before 常见规则有哪些?
什么是原子性、可见性和有序性?
如何禁止指令重排序?
volatile 如何保证可见性?
volatile 可以保证原子性吗?
什么是乐观锁和悲观锁?
如何实现乐观锁?什么是版本号机制和 CAS?
什么是原子操作?
CAS 有哪些问题?
synchronized 是什么?有什么用?
什么是偏向锁?
什么是轻量级锁?
介绍一下 synchronized 锁膨胀过程。
什么是适应性自旋锁?
synchronized 的使用方式有哪些?锁的对象分别是什么?
构造方法可以用 synchronized 修饰吗?
synchronized 的底层原理是什么?
JDK 1.6 之后 synchronized 做了哪些优化?
synchronized 和 volatile 有什么区别?
synchronized 有什么缺陷?
Synchronized 使用时有哪些注意事项?
什么是原子类?原子类是怎么实现的?有什么优势?
AtomicStampedReference 和 AtomicMarkableReference 有什么区别?
LongAdder 是什么?相比 AtomicLong 有什么优势?
什么是 ReentrantLock?
什么是可重入锁?
公平锁和非公平锁有什么区别?
synchronized 和 ReentrantLock 有什么区别?
什么是 ReentrantReadWriteLock?适合什么场景?
什么是读写锁、共享锁和独占锁?
线程持有读锁还能获取写锁吗?
读锁为什么不能升级为写锁?
什么是 StampedLock?适合什么场景?
为什么 StampedLock 是不可重入的?
StampedLock 的性能为什么更好?
StampedLock 的乐观读是如何执行的?
什么是ThreadLocal?有什么用?
ThreadLocal原理是什么?
ThreadLocal内存泄漏是怎么导致的?
ThreadLocal.set方法原理是什么?
ThreadLocalMap如何清理过期key?
ThreadLocalMap扩容机制是什么?
ThreadLocal.get方法原理是什么?
ThreadLocal有哪些注意事项?
什么是InheritableThreadLocal?有什么用?
ThreadLocal有哪些使用场景?
什么是线程池?
为什么要使用线程池?
如何创建线程池?
线程池如何维护运行状态?
线程池如何实现线程管理?
为什么Worker要设计成不可重入?
线程池常见参数有哪些?
为什么不推荐使用Executors内置线程池?
线程池的keepAliveTime是怎么工作的?
线程池的拒绝策略有哪些?
线程池常用的阻塞队列有哪些?
阻塞队列和普通队列有什么区别?如何实现阻塞?
wait/notifyAll和Condition实现阻塞队列有什么区别?
线程池有几种状态?
线程池处理任务的流程是什么?
如何设定线程池大小?
如何动态修改线程池参数?
线程池中线程抛出异常会怎么样?
为什么线程崩溃了不会导致JVM崩溃?
常见的内置线程池有哪些?
Java有哪些异步实现方式?
介绍一下Future类
Callable和Future有什么关系?
Future的优缺点是什么?
CompletableFuture有什么用?
CompletableFuture有哪些获取结果的方法?
CompletableFuture怎么进行异步任务编排?它们有什么区别?
什么是AQS?请介绍一下AQS。
什么是CLH队列?
AQS有哪些waitStatus状态?
AQS的工作流程是怎样的?以ReentrantLock为例说明。
AQS公平锁和非公平锁有什么区别?
AQS有哪些资源共享方式?
什么是Semaphore?
什么是CountDownLatch?
什么是CyclicBarrier?
有哪些支持并发的集合?
介绍一下ConcurrentLinkedQueue。
说说ConcurrentLinkedQueue的HOPS延迟更新策略。
介绍一下BlockingQueue。
分别介绍一下BlockingQueue的常见实现类。
导入预览
什么是线程和进程?二者有什么关系、区别及优缺点?
分类: Java 并发
标签: Java, 并发, Java 并发
批量摘要
解析提示
- Long source was parsed in 3 chunks because raw_text exceeded 24000 characters.
- Chunk 1/3: 该来源为知识笔记而非真实面经,未包含公司、岗位、轮次等面试元数据。
- Chunk 1/3: 内容为长文档分块中的第1块,仅能提取本块明确出现的问题;部分主题如银行家算法、锁消除、锁粗化、内存屏障如何保证一致性仅出现标题或残缺提示,未单独提取。
- Chunk 1/3: 个别原文表述可能存在术语不严谨或笔误,如 TIME_WAITING 应为 TIMED_WAITING、LongAddr/longaddr 应为 LongAdder、CLH 被写为 CHL、部分原子性/有序性描述混淆;canonical_answer 已尽量按本块可支持内容做规范化。
- Chunk 2/3: 该文本为长文档分块中的第2块,仅能提取本块明确出现的内容。
- Chunk 2/3: 开头关于StampedLock读锁的内容主要为图片OCR流程图,缺少足够文字说明,未稳定提炼为问答。
- Chunk 2/3: 部分表述可能存在术语或细节不严谨之处,例如对ThreadLocal弱引用“用来解决内存泄漏问题”等说法,已尽量按原文归纳。
- Chunk 3/3: 该分块为文档末尾片段,只能基于当前内容提取,部分上下文可能缺失。
- Chunk 3/3: 个别表述存在口语化或不严谨之处,如SynchronousQueue相关描述未写完整,DelayWorkQueue是否作为BlockingQueue常见实现类的表述需谨慎。
- Chunk 3/3: 文末仅出现“ConcurrentSkipListMap”标题,未提供展开内容,因此未单独提炼对应问答。
创建时间: 2026/03/28 17:54
开始时间: 2026/03/28 21:05
完成时间: 2026/03/28 21:25