并发编程相比 Java 中其他知识点学习门槛较高,从而导致很多人望而却步。但无论是职场面试,还是高并发/高流量的系统的实现,却都离不开并发编程,于是能够真正掌握并发编程的人成为了市场迫切需求的人才。本文则列出一些热点并发编程面试题:
- 线程池相关:线程池都有哪些参数,内部怎么工作。阿里巴巴开发规范为何要求不用Executors工具类来创建线程池。线程池使用完需要关闭?不关闭会怎么样?线程池的出现是为了解决什么问题?
- Java中线程分为那两种,线程池中线程是属于哪一种?jvm退出的条件是什么?
- ThreadLocal的使用场景?原理是什么?需要注意什么(内存泄漏)
- Java中都有哪些锁,各自特点是啥,锁是用来解决什么问题?可重入锁?独占锁?
- 什么是乐观锁和悲观锁,使用场景,如何实现。
- 什么是死锁,如何产生,怎么避免?
- Java内存模型,volatile作用是啥,什么是原子性操作?
- 什么是中断,被中断的线程会马上终止?
- 如何实现生产消费模型?
- CAS是什么,有什么问题,如何解决?
- 多线程之间同步有哪些措施?
- jdk8中ConcurrentHashMap是怎么实现?
- 如何实现异步计算?Future ,CompletableFuture?
- 什么是伪共享,为何出现,如何解决?
- 用过jdk中那些线程安全的容器组件,底层数据结构是怎样的?
- 你在项目中用过或者见到过那些处理并发的问题?
系统学习Java并发编程,推荐下面书籍:第一本<>从基础到深入,基于JDK8辅助源码对JUC包进行解析,第二本《Java并发编程实战》则是业界第一本并发书籍神作。