摘要: 本节我们从以上几个方面详细介绍一下Java线程池的使用。 线程池的创建 线程池任务提交 关闭线程池 线程池的监控 线程池的合理配置 一.线程池的创建 我们可以通过ThreadPoolExecutor来创建一个线程池。 创建线程池需要输入几个参数: 1.corePoolSize(线程池的基本大小):当 阅读全文
posted @ 2017-11-25 15:59 木易森林 阅读(601) 评论(0) 推荐(0) 编辑
摘要: Fork/Join框架是Java 7提供的一个用于并行执行任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。Fork/Join框架要完成两件事情: 1.任务分割:首先Fork/Join框架需要把大的任务分割成足够小的子任务,如果子任务比较大的话还要对子任务进 阅读全文
posted @ 2017-11-25 15:19 木易森林 阅读(45206) 评论(4) 推荐(7) 编辑
摘要: happens-before是JMM最核心的概念,理解happens-before是理解JMM的关键。 一.JMM的设计 首先,让我们先分析一下JMM的设计意图。从JMM的设计者的角度,在设计JMM的时候要考虑一下两个关键因素: 1.程序员对内存模型的使用。程序员希望内存模型易于理解、易于编程。程序 阅读全文
posted @ 2017-11-25 11:26 木易森林 阅读(6705) 评论(3) 推荐(0) 编辑
摘要: 一.final域的重排序规则 对于final域,编译器和处理器要遵循两个重拍序规则: 1.在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序。 2.初次读一个包含final域的对象的应用,与随后初次读这个final域,这两个操作之间不能重排 阅读全文
posted @ 2017-11-25 10:58 木易森林 阅读(3419) 评论(1) 推荐(2) 编辑