线程安全
- 什么叫线程安全?servlet是线程安全吗?
- 同步有几种实现方法?
- volatile有什么用?能否用一句话说明下volatile的应用场景?
- 请说明下java的内存模型及其工作流程。
- 为什么代码会重排序?
详细答案见:JAVA多线程/并发——问题与答案(1)
并发容器和框架
- 如何让一段程序并发的执行,并最终汇总结果?
- 如何合理的配置java线程池?如CPU密集型的任务,基本线程池应该配置多大?IO密集型的任务,基本线程池应该配置多大?用有界队列好还是无界队列好?任务非常多的时候,使用什么阻塞队列能获取最好的吞吐量?
- 如何使用阻塞队列实现一个生产者和消费者模型?请写代码。
- 多读少写的场景应该使用哪个并发容器,为什么使用它?比如你做了一个搜索引擎,搜索引擎每次搜索前需要判断搜索关键词是否在黑名单里,黑名单每天更新一次。
Java中的锁
- 如何实现乐观锁(CAS)?如何避免ABA问题?
- 读写锁可以用于什么应用场景?
- 什么时候应该使用可重入锁?
- 什么场景下可以使用volatile替换synchronized?
并发工具
- 如何实现一个流控程序,用于控制请求的调用次数?