![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
卢丹文
springboot hadoop python springmvc
展开
-
ConcurrentHashMap 实现原理
ConcurrentHashMap 是如何实现即保证线程安全,又能有良好的性能。结合源码进行分析数据结构:取消了Segment分段锁的数据结构,取而代之的是数组+链表+红黑树的结构。保证线程安全机制:JDK1.7采用segment的分段锁机制实现线程安全,其中segment继承自ReentrantLock。JDK1.8采用CAS(代码在哪里,待考证)+Synchronized保证线程安全。锁的粒度:原来是对需要进行数据操作的Segment加锁,现调整为对每个数组元素加锁(Node)。原创 2020-09-15 02:02:10 · 196 阅读 · 1 评论 -
threadPoolExecutor 中三种方法的区别(shutdown,shutdownNow,awaitTermination)
(1)shutdown:停止接受submit提交的任务,等待线程池中已经在运行的线程执行完毕后,关闭线程池。(2)shutdownNow: 试图停止当前正执行的task,并返回尚未执行的task的list(3)awaitTermination方法:接收timeout和TimeUnit两个参数。当等待超过设定时间时,会监测ExecutorService是否已经关闭,若关闭则返回true,否则返...原创 2019-08-10 23:51:31 · 1699 阅读 · 0 评论 -
jdk的ExecutorService中几种常用线程的特点以及使用场景
1.ExecutorService.newFixedThreadPool(nThreads):(1)总是维护固定数量的核心线程数(即活动线程数总是和最大线程数一致),哪怕都没有任务需要执行。(2)没有所谓的非空闲时间,即keepAliveTime为0。即线程一闲下来就会被马上回收(3)阻塞队列为无界队列LinkedBlockingQueue。使用场景:FixedThreadPool 应该...原创 2019-08-27 23:16:42 · 281 阅读 · 0 评论