![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发编程
文章平均质量分 77
并发编程总结实战
何忆清风
这个作者很懒,什么都没留下…
展开
-
并发编程总结
并发编程 一、现代计算机的理论模型 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sSV7HdSh-1604483918602)(images/image-20201010142026285.png)] 独写速度:寄存器 > L1 > L2 > L3 > 内存条 cpu是通过系统总线去内存条中进行数据交互,每次cpu都会提前把指令copy到cpu cache中以便于提高效率 例如: main{ a = 1 } cpu先去内存中load到L3然原创 2021-04-16 11:36:58 · 86824 阅读 · 1 评论 -
线程池总结
线程池 1、什么时候使用线程池? 单个任务处理时间比较短 需要处理的任务数量很大 2、线程池优势 重用存在的线程、减少线程创建、消亡的开销、提高性能 提高响应速度 提高线程的可管理性 3、线程池重要属性 ctl:记录当前线程池的运行状态和线程池内有效线程的数量,高3位runState,低29位保存workerCount runStateOf:当前线程的状态 workerCountOf:工作线程的数量 4、线程池五种状态 RUNNING:能接受新提交的任务,并且也能处理阻塞队列中的任务 SHUT原创 2021-04-16 11:18:22 · 87169 阅读 · 1 评论 -
手写线程池
需要了解线程池基础的移步:线程池总结 手写的线程池比较简陋,只有运行状态以及停止状态,采用内部有些属性采用了Atomi包里面的类来实现,更加方便。 方法说明: execute:提交任务方法,先判断核心线程是否达到配置的,如果达到配置的核心线程池配置,那么将任务提交到阻塞队列中,如果阻塞队列已经满了就创建工作线程,工作线程达到了最大线程数那么采用配置的策略进行处理。 addWorker:在创建前先对线程池状态以及工作线程线程数进行判断;将任务封装成Worker类,Worker内部类,对任务进行封装,并且创建原创 2021-04-16 11:34:10 · 87686 阅读 · 8 评论