Java并发
crazykiller
E-Mail:zxyrocket@163.com 积极向上,谦虚谨慎 和大家一起分享是一种快乐
展开
-
Java并发编程的艺术(九)——批量获取多条线程的执行结果
当向线程池提交callable任务后,我们可能需要一次性获取所有返回结果,有三种处理方法。 方法一:自己维护返回结果 // 创建一个线程池 ExecutorService executorService = Executors.newFixedThreadPool(10); // 存储执行结果的List List> results = new ArrayList>(); // 提交10个任转载 2017-08-04 15:20:58 · 253 阅读 · 0 评论 -
Java并发编程的艺术(七)——Executors
Executors框架简介 Executor框架便是Java 5中引入的,其内部使用了线程池机制,它在Java.util.cocurrent 包下,通过该框架来控制线程的启动、执行和关闭,可以简化并发编程的操作。因此,在java 5之后,通过Executor来启动线程比使用Thread的start方法更好,除了更易管理,效率更好(用线程池实现,节约开销)外,还有关键的一点:有助于避免this转载 2017-08-04 15:25:55 · 217 阅读 · 0 评论 -
Java并发容器大合集
概述 java.util包中的大部分容器都是非线程安全的,若要在多线程中使用容器,你可以使用Collections提供的包装函数:synchronizedXXX,将普通容器变成线程安全的容器。但该方法仅仅是简单地给容器使用同步,效率很低。因此并发大师Doug Lea提供了java.util.concurrent包,提供高效的并发容器。并且为了保持与普通的容器的接口一致性,仍然使用转载 2017-08-04 15:30:32 · 339 阅读 · 0 评论 -
Java并发编程的艺术(十)——线程池(1)
线程池的作用 减少资源的开销 减少了每次创建线程、销毁线程的开销。 提高响应速度 每次请求到来时,由于线程的创建已经完成,故可以直接执行任务,因此提高了响应速度。 提高线程的可管理性 线程是一种稀缺资源,若不加以限制,不仅会占用大量资源,而且会影响系统的稳定性。 因此,线程池可以对线程的创建与停止、线程数量等等因素加以控制,使得线程在一种可控的范围内运行,不仅转载 2017-08-07 10:24:29 · 262 阅读 · 0 评论 -
Java并发编程的艺术(十一)——线程池(2)
Executor两级调度模型 在HotSpot虚拟机中,Java中的线程将会被一一映射为操作系统的线程。 在Java虚拟机层面,用户将多个任务提交给Executor框架,Executor负责分配线程执行它们; 在操作系统层面,操作系统再将这些线程分配给处理器执行。 Executor结构 Executor框架中的所有类可以分成三类: 任务 任务有两种类型:R转载 2017-08-07 10:24:58 · 236 阅读 · 0 评论