知识索引(Java并发面试)- 更新版
- 什么是线程和进程? -> [进程与线程基本概念](/操作系统/进程与线程.html)
- 线程与进程的关系、区别及优缺点? -> [进程与线程关系](/操作系统/进程与线程.html)
- Java线程和操作系统的线程有什么区别? -> [JAVA线程模型](/编程语言/JAVA/JAVA并发编程/线程.html)
- 如何创建线程? -> [线程创建方式](/编程语言/JAVA/JAVA并发编程/线程.html)
- 为什么程序计数器、虚拟机栈和本地方法栈是线程私有的? -> [JAVA内存模型](/编程语言/JAVA/JVM/JAVA内存模型.html)
- 为什么堆和方法区是线程共享的? -> [JAVA内存模型](/编程语言/JAVA/JVM/JAVA内存模型.html)
- 线程的生命周期和状态? -> [线程状态转换](/编程语言/JAVA/JAVA并发编程/线程.html)
- 线程六种状态详解? -> [线程状态转换](/编程语言/JAVA/JAVA并发编程/线程.html)
- Thread#sleep()方法和Object#wait()方法对比? -> [线程同步机制](/编程语言/JAVA/JAVA并发编程/基础概念.html)
- 为什么wait()方法不定义在Thread中? -> [线程同步机制](/编程语言/JAVA/JAVA并发编程/基础概念.html)
- 可以直接调用Thread类的run方法吗? -> [线程启动机制](/编程语言/JAVA/JAVA并发编程/线程.html)
- 为什么要使用多线程? -> [并发编程优势](/编程语言/JAVA/JAVA并发编程/JAVA并发编程.html)
- 单核CPU支持Java多线程吗? -> [线程调度模型](/操作系统/进程与线程.html)
- 单核CPU上运行多个线程效率一定会高吗? -> [线程调度模型](/操作系统/进程与线程.html)
- 使用多线程可能带来什么问题? -> [并发问题](/编程语言/JAVA/JAVA并发编程/JAVA并发编程.html)
- 如何理解线程安全和不安全? -> [线程安全](/编程语言/JAVA/JAVA并发编程/JAVA并发编程.html)
- 什么是线程死锁? -> [死锁原理](/操作系统/死锁.html)
- 如何检测死锁? -> [死锁检测](/操作系统/死锁.html)
- 如何预防和避免线程死锁? -> [死锁预防](/操作系统/死锁.html)
- 用户线程vs内核线程? -> [线程模型](/操作系统/进程与线程.html)
- Java线程模型(一对一模型)? -> [JAVA线程模型](/编程语言/JAVA/JAVA并发编程/线程.html)
- 抢占式调度vs协同式调度? -> [线程调度](/操作系统/进程与线程.html)
- synchronized关键字的实现原理? -> [synchronized机制](/编程语言/JAVA/JAVA并发编程/基础概念.html)
- volatile关键字的作用? -> [volatile机制](/编程语言/JAVA/JAVA并发编程/基础概念.html)
- Java内存模型(JMM)? -> [JAVA内存模型](/编程语言/JAVA/JVM/JAVA内存模型.html)
- 原子性、可见性、有序性? -> [JMM三大特性](/编程语言/JAVA/JAVA并发编程/基础概念.html)
- ThreadLocal的原理和使用场景? -> [ThreadLocal机制](/编程语言/JAVA/JAVA并发编程/并发工具类.html)
- 线程池的工作原理? -> [线程池原理](/编程语言/JAVA/JAVA并发编程/线程池.html)
- 常见的线程池类型? -> [线程池类型](/编程语言/JAVA/JAVA并发编程/线程池.html)
- 如何合理设置线程池参数? -> [线程池配置](/编程语言/JAVA/JAVA并发编程/线程池.html)
- Fork/Join框架原理? -> [Fork/Join框架](/编程语言/JAVA/JAVA并发编程/并发工具类.html)
- AQS(AbstractQueuedSynchronizer)原理? -> [AQS原理](/编程语言/JAVA/JAVA并发编程/基础概念.html)
- ReentrantLock的实现原理? -> [ReentrantLock机制](/编程语言/JAVA/JAVA并发编程/并发工具类.html)
- synchronized和ReentrantLock的区别? -> [锁机制对比](/编程语言/JAVA/JAVA并发编程/基础概念.html)
- CountDownLatch、CyclicBarrier、Semaphore的使用场景? -> [并发工具类](/编程语言/JAVA/JAVA并发编程/并发工具类.html)
- BlockingQueue的实现原理? -> [阻塞队列](/编程语言/JAVA/JAVA并发编程/并发集合.html)
- ConcurrentHashMap的实现原理? -> [ConcurrentHashMap](/编程语言/JAVA/JAVA并发编程/并发集合.html)
- CAS(Compare And Swap)原理? -> [CAS机制](/编程语言/JAVA/JAVA并发编程/基础概念.html)
- 乐观锁与悲观锁? -> [锁策略](/编程语言/JAVA/JAVA并发编程/基础概念.html)
- synchronized的锁升级过程? -> [synchronized优化](/编程语言/JAVA/JAVA并发编程/基础概念.html)
- 并发安全的单例模式实现? -> [单例模式](/编程语言/JAVA/JAVA并发编程/JAVA并发编程.html)
- Java中的阻塞队列有哪些? -> [阻塞队列](/编程语言/JAVA/JAVA并发编程/并发集合.html)
知识桥接说明(自动生成)- 更新版
什么是线程和进程?
- 该问题试图回答的根本问题:
- 程序执行的基本单位是什么?
- 如何实现资源隔离与共享?
- 对应稳定知识:
- [进程与线程基本概念](/操作系统/进程与线程.html)
线程与进程的关系、区别及优缺点?
- 该问题试图回答的根本问题:
- 资源分配与调度执行如何分离?
- 不同抽象层级的执行单元有何差异?
- 对应稳定知识:
- [进程与线程关系](/操作系统/进程与线程.html)
Java线程和操作系统的线程有什么区别?
- 该问题试图回答的根本问题:
- 虚拟机如何抽象底层操作系统能力?
- 语言层面的并发与系统层面的并发如何映射?
- 对应稳定知识:
- [JAVA线程模型](/编程语言/JAVA/JAVA并发编程/线程.html)
如何创建线程?
- 该问题试图回答的根本问题:
- 并发执行单元如何初始化?
- 线程生命周期的起点如何控制?
- 对应 stable knowledge:
- [线程创建方式](/编程语言/JAVA/JAVA并发编程/线程.html)
为什么程序计数器、虚拟机栈和本地方法栈是线程私有的?
- 该问题试图回答的根本问题:
- 线程执行上下文如何维护?
- 执行状态如何在多个并发实体间隔离?
- 对应稳定知识:
- [JAVA内存模型](/编程语言/JAVA/JVM/JAVA内存模型.html)
为什么堆和方法区是线程共享的?
- 该问题试图回答的根本问题:
- 数据如何在并发执行单元间共享?
- 内存资源如何平衡效率与隔离?
- 对应 stable knowledge:
- [JAVA内存模型](/编程语言/JAVA/JVM/JAVA内存模型.html)
线程的生命周期和状态?
- 该问题试图回答的根本问题:
- 并发执行单元的状态变化规律是什么?
- 线程调度如何影响执行状态?
- 对应 stable knowledge:
- [线程状态转换](/编程语言/JAVA/JAVA并发编程/线程.html)
Thread#sleep()方法和Object#wait()方法对比?
- 该问题试图 answer 的根本问题:
- 线程阻塞机制有哪些实现方式?
- 锁资源与线程调度如何协调?
- 对应 stable knowledge:
- [线程同步机制](/编程语言/JAVA/JAVA并发编程/基础概念.html)
为什么要使用多线程?
- 该问题试图回答的根本问题:
- 如何提升系统执行效率?
- 并发计算的价值与适用场景是什么?
- 对应 stable knowledge:
- [并发编程优势](/编程语言/JAVA/JAVA并发编程/JAVA并发编程.html)
使用多线程可能带来什么问题?
- 该问题试图回答的根本问题:
- 并发执行引入了哪些复杂性?
- 确定性程序如何因并发变得不确定?
- 对应 stable knowledge:
- [并发问题](/编程语言/JAVA/JAVA并发编程/JAVA并发编程.html)
如何理解线程安全和不安全?
- 该问题试图回答的根本问题:
- 并发访问如何保证数据一致性?
- 临界区保护机制的本质是什么?
- 对应 stable knowledge:
- [线程安全](/编程语言/JAVA/JAVA并发编程/JAVA并发编程.html)
什么是线程死锁?
- 该问题试图回答的根本问题:
- 资源竞争如何导致系统僵局?
- 循环等待如何形成并维持?
- 对应 stable knowledge:
- [死锁原理](/操作系统/死锁.html)
如何预防和避免线程死锁?
- 该问题试图回答的根本问题:
- 如何打破循环等待条件?
- 资源分配策略如何防止死锁?
- 对应 stable knowledge:
- [死锁预防](/操作系统/死锁.html)
Java线程模型(一对一模型)?
- 该问题试图回答的根本问题:
- 语言级并发抽象如何映射到底层实现?
- 线程抽象的开销与性能如何平衡?
- 对应 stable knowledge:
- [JAVA线程模型](/编程语言/JAVA/JAVA并发编程/线程.html)
抢占式调度vs协同式调度?
- 该问题试图回答的根本问题:
- CPU时间片如何分配给并发执行单元?
- 线程控制权转移的主动与被动机制?
- 对应 stable knowledge:
- [线程调度](/操作系统/进程与线程.html)
synchronized关键字的实现原理?
- 该问题试图回答的根本问题:
- 如何实现临界区的互斥访问?
- 锁的底层实现机制是什么?
- 对应 stable knowledge:
- [synchronized机制](/编程语言/JAVA/JAVA并发编程/基础概念.html)
volatile关键字的作用?
- 该问题试图回答的根本问题:
- 如何保证变量的可见性和有序性?
- 内存屏障如何防止指令重排序?
- 对应 stable knowledge:
- [volatile机制](/编程语言/JAVA/JAVA并发编程/基础概念.html)
Java内存模型(JMM)?
- 该问题试图回答的根本问题:
- 并发环境下的内存访问规则是什么?
- 如何保证多线程程序的内存一致性?
- 对应 stable knowledge:
- [JAVA内存模型](/编程语言/JAVA/JVM/JAVA内存模型.html)
原子性、可见性、有序性?
- 该问题试图回答的根本问题:
- 并发编程的三大核心特性是什么?
- 如何保证并发程序的正确性?
- 对应 stable knowledge:
- [JMM三大特性](/编程语言/JAVA/JAVA并发编程/基础概念.html)
ThreadLocal的原理和使用场景?
- 该问题试图回答的根本问题:
- 如何实现线程级别的数据隔离?
- 线程本地变量的实现机制是什么?
- 对应 stable knowledge:
- [ThreadLocal机制](/编程语言/JAVA/JAVA并发编程/并发工具类.html)
线程池的工作原理?
- 该问题试图回答的根本问题:
- 如何高效管理线程资源?
- 线程复用机制如何减少开销?
- 对应 stable knowledge:
- [线程池原理](/编程语言/JAVA/JAVA并发编程/线程池.html)
AQS(AbstractQueuedSynchronizer)原理?
- 该问题试图回答的根本问题:
- 并发工具类的通用框架是什么?
- 如何实现阻塞锁和同步器?
- 对应 stable knowledge:
- [AQS原理](/编程语言/JAVA/JAVA并发编程/基础概念.html)
CAS(Compare And Swap)原理?
- 该问题试图回答的根本问题:
- 无锁算法如何实现原子操作?
- 硬件级别的原子指令如何避免锁竞争?
- 对应 stable knowledge:
- [CAS机制](/编程语言/JAVA/JAVA并发编程/基础概念.html)
ConcurrentHashMap的实现原理?
- 该问题试图回答的根本问题:
- 如何实现高并发的哈希表?
- 分段锁与CAS如何提升并发性能?
- 对应 stable knowledge:
- [ConcurrentHashMap](/编程语言/JAVA/JAVA并发编程/并发集合.html)