线程加强篇
《面渣逆袭并发编程篇 V2》全部面试题汇总基础篇并行跟并发有什么区别你是如何理解线程安全的说说进程和线程的区别如何理解协程线程间是如何通信的说说线程有几种创建方式一个 8G 内存的系统最多能创建多少个线程启动一个 Java 程序里面有哪些线程调用 start 方法时会执行 run 方法那为什么不直接调用 run 方法线程有哪些常用调度方法说说 wait 方法和 notify 方法说说 sleep 方法说说 yield 方法说说 interrupt 方法说说 stop 方法线程有几种状态如何强制终止线程什么是线程上下文切换线程可以被多核调度吗守护线程了解吗线程间有哪些通信方式简单说说 volatile 和 synchronized 的使用方式wait () 和 notify () 使用方式了解吗Condition 了解吗Exchanger 了解吗CompletableFuture 了解吗说说 sleep 和 wait 的区别怎么保证线程安全有个 int 变量初始为 0十个线程各循环 10000 次执行 结果大于还是小于等于 10 万为什么key 对应 value 是 JSON多个子任务修改 JSON 内子字段是否存在线程安全问题说一个线程安全的使用场景Hashtable 底层数据结构ThreadLocal 专题ThreadLocal 是什么你在工作中用到过 ThreadLocal 吗ThreadLocal 怎么实现的ThreadLocal 内存泄露是怎么回事如何解决为什么 key 设计为弱引用ThreadLocalMap 的源码看过吗ThreadLocalMap 怎么解决 Hash 冲突为什么不用 HashMap 拉链法开放定址法了解吗ThreadLocalMap 扩容机制了解吗父线程能用 Thread 给子线程传值吗InheritableThreadLocal 原理ThreadLocal 有哪些改进方案FastThreadLocal、TransmittableThreadLocal、ScopedValueJava 内存模型JMM专题说一下你对 Java 内存模型的理解i 是原子操作吗说说原子性、可见性、有序性int i2;int ji;i;ii1; 哪些是原子操作什么是指令重排双重检查锁为什么需要 volatilehappens-before 了解吗有哪些 happens-before 规则as-if-serial 了解吗volatile 了解吗volatile 如何保证可见性、有序volatile 和 synchronized 区别volatile 修饰基本类型 / 引用类型区别synchronized 锁专题synchronized 用过吗上锁对象分别是什么普通方法 / 静态方法 / 代码块synchronized 实现原理Monitor 是什么是否涉及操作系统层面synchronized 如何保证可见性、有序性如何实现可重入synchronized 锁升级四种锁状态完整流程JDK1.6 对 synchronized 做了哪些优化synchronized 和 ReentrantLock 的区别高并发场景选哪个AQS 了解吗AQS 源码、两种同步模式、CLH 队列ReentrantLock 实现原理lock () 方法流程ReentrantLock 如何创建公平 / 非公平锁两者区别、公平锁实现逻辑CAS 了解吗CAS 原子性如何保证CAS 存在哪些问题ABA 问题如何解决自旋开销大怎么处理多变量如何 CASJava 有哪些方式保证原子性原子操作类有哪些分类各自使用场景AtomicInteger 源码读过吗线程死锁是什么死锁四个必要条件如何避免死锁线上死锁怎么排查聊聊线程同步和互斥自旋锁是什么优缺点