阅读482 返回首页    go 阿里云 go 技术社区[云栖]


java并发面试题(二)实战

本文列出了在工作中会用到的并发编程的实战问题,大家可以一起交流下,在回复中给出答案。

并发容器和框架

  1. 如何让一段程序并发的执行,并最终汇总结果?
  2. 如何合理的配置java线程池?如CPU密集型的任务,基本线程池应该配置多大?IO密集型的任务,基本线程池应该配置多大?用有界队列好还是无界队列好?任务非常多的时候,使用什么阻塞队列能获取最好的吞吐量?
  3. 如何使用阻塞队列实现一个生产者和消费者模型?请写代码。
  4. 多读少写的场景应该使用哪个并发容器,为什么使用它?比如你做了一个搜索引擎,搜索引擎每次搜索前需要判断搜索关键词是否在黑名单里,黑名单每天更新一次。

Java中的锁

  1. 如何实现乐观锁(CAS)?如何避免ABA问题?
  2. 读写锁可以用于什么应用场景?
  3. 什么时候应该使用可重入锁?
  4. 什么场景下可以使用volatile替换synchronized?

并发工具

  1. 如何实现一个流控程序,用于控制请求的调用次数?

答案

可以阅读以下参考资料,知道答案后可以在回复中交流

文章转自 并发编程网-ifeve.com

最后更新:2017-05-22 20:04:18

  上一篇:go  深入理解Java内存模型(六)——final
  下一篇:go  线程通信