1 Star 1 Fork 2

SongyangJi / JavaBooks

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
README.md 2.98 KB
一键复制 编辑 原始数据 按行查看 历史
maifeng_cat 提交于 2020-02-11 17:38 . idea配置

多线程总结

容器

Map/Set

  1. 不需要同步的时候可以选择 HashMap
  2. 不需要同步,需要排序可以选择 TreeMap
  3. 不需要同步,且需要双向队列或者栈的可选择 LinkedHashMap
  4. 同步,并发量小可以选择 HashTable Collections.sychronizedXXX
  5. 并发量大,可选择 ConcurrentHashMap
  6. 在5的前提下,需要排序 ConcurrentSkipListMap

队列

  1. 不需要同步,可以选择 ArrayList LinkedList
  2. 并发量小,可选择 Collections.synchroizedXXX CopyOnWriteList(适合大量读,少量写)
  3. 并发量大,可选择 ConcurrentLinkedQueue BlockingQueue(无界阻塞式队列) ArrayBQ(有界) TransferBQ(直接转给消费者) DelayQueue(执行定时任务)

线程池

  1. Executor
  2. ExecutorService
  3. Callable
  4. Future
  5. 6种线程池
    • newFixedThreadPool(固定线程池)
    • newCachedThreadPool(带有缓存线程池,默认空闲线程60s)
    • newSingleThreadExecutor(单个线程)
    • newScheduledThreadPoold(定时线程池)
    • newWorkStealingPool(空闲线程去抢占其他线程的任务队列的任务)
    • ForkJoinPool(适合大规模计算)

索引

基础

1
https://gitee.com/songyangji/JavaBooks.git
git@gitee.com:songyangji/JavaBooks.git
songyangji
JavaBooks
JavaBooks
master

搜索帮助