多线程
卢丹文
springboot hadoop python springmvc
展开
-
ConcurrentHashMap 实现原理
ConcurrentHashMap 是如何实现即保证线程安全,又能有良好的性能。结合源码进行分析 数据结构:取消了Segment分段锁的数据结构,取而代之的是数组+链表+红黑树的结构。 保证线程安全机制:JDK1.7采用segment的分段锁机制实现线程安全,其中segment继承自ReentrantLock。JDK1.8采用CAS(代码在哪里,待考证)+Synchronized保证线程安全。 锁的粒度:原来是对需要进行数据操作的Segment加锁,现调整为对每个数组元素加锁(Node)。原创 2020-09-15 02:02:10 · 161 阅读 · 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 · 1670 阅读 · 0 评论 -
jdk的ExecutorService中几种常用线程的特点以及使用场景
1.ExecutorService.newFixedThreadPool(nThreads): (1)总是维护固定数量的核心线程数(即活动线程数总是和最大线程数一致),哪怕都没有任务需要执行。 (2)没有所谓的非空闲时间,即keepAliveTime为0。即线程一闲下来就会被马上回收 (3)阻塞队列为无界队列LinkedBlockingQueue。 使用场景:FixedThreadPool 应该...原创 2019-08-27 23:16:42 · 274 阅读 · 0 评论