
Java并发
11408考研休息室
这个作者很懒,什么都没留下…
展开
-
Java并发编程-FutureTask
一、FutureTask简介FutureTask实现了Future接口和Runnable可以由Executor执行,也可以使用FutureTask.run()直接调用线程执行。FutureTask状态未启动:没有执行FutureTask.run()之前FutureTask.get()导致线程阻塞FutureTask.cancel()导致永远不会执行此任务已启动:run()方法的执行过程中FutureTask.get() 阻塞FutureTask.cacel(true) 中断执行任原创 2021-10-23 17:18:17 · 432 阅读 · 0 评论 -
ScheduledThreadPoolExecutor
一、概念继承自ThreadPoolExecutor,用于执行定时任务和延时执行任务。与Timer的区别:Timer只对单个线程执行定时任务,而ScheduledThreadPoolExecutor可以对多个线程执行。二、运行机制使用DelayQueue作为工作队列maximumPoolSize参数无效通用执行步骤1. Executor调用scheduleAtFixedRate()/scheduleAtFixedDelay(),向DelayQueue添加一个ScheduledFutureTas原创 2021-10-23 16:58:49 · 249 阅读 · 0 评论 -
Java并发编程-ThreadPoolExecutor
一、核心参数corePool 核心线程池大小maximumPool 最大线程池大小BlockingQueue 工作队列RejectedExecutionHandler 当Executor已经关闭或饱和,需要拒绝的策略。二、分类FixedThreadPoolSingleThreadExecutorCachedThreadPool三、通用Executor执行模型当前线程数量小于corePoolSize,创建一个新的线程来执行任务如果线程大于等于corePoolSize,工作队列不原创 2021-10-23 00:38:10 · 108 阅读 · 0 评论 -
Java并发容器与框架的实现
一、ConcurrentHashMap1.1 背景多线程中,HashMap导致程序死循环(HashMap采用拉链法解决hash冲突,当链表大于了装载因子对应的最大容量,需要重新进行散列。问题发生在这里,多线程可能同时出发rehash,形成了链表的回路);HashTable会阻塞其他线程,效率低下。ConccurentHashMap使用分段锁,把数据分段,每一段配一把锁。1.2 结构由Segment数组和HashEntry数组组成。Segment是一个ReentrantLock,当作锁。HashEnt原创 2021-10-22 01:14:54 · 134 阅读 · 0 评论 -
Java并发编程的艺术-四、五章节思维导图
原创 2021-10-19 23:49:24 · 127 阅读 · 0 评论 -
Java并发编程的艺术-前三章思维导图整理
原创 2021-10-18 21:53:22 · 159 阅读 · 0 评论