多线程
文章平均质量分 78
wbean
这个作者很懒,什么都没留下…
展开
-
使用Executor代替手动的线程调度(java并发编程读书笔记五)
不使用Executor线程池:单线程:顺序的执行任务不能提供良好的吞吐量或者快速的响应性 每任务每线程:大量线程创建,销毁,线程间切换的开销巨大,高负载下容易崩溃Executor是基于 生产者-消费者模式的。 解耦了任务提交和任务执行,提交任务的是生产者,执行任务的是消费者 Executors:线程池工厂newFixedThreadPool : 创建一个定长的线程池,原创 2011-11-15 10:30:41 · 1461 阅读 · 0 评论 -
任务的取消与关闭(java并发编程实践读书笔记六)
可取消的任务:外部代码能够在任务自然完成之前,把他更改为完成状态。取消策略 :一个可取消的任务必须拥有取消策略 策略主要说明其他代码如何取消该任务。例:在任务中提供public的cancel方法 任务本身在什么时候检查取消的请求是否到达 任务响应取消请求要执行哪些动作一种取消策略在任务(线程)中定义一个取消标志 volatile boolean cancelle原创 2011-11-17 23:35:21 · 1903 阅读 · 0 评论 -
同步容器,并发容器(java并发编程实践读书笔记一)
java并发编程实践中摘录的重点-绿色文字为jdk文档中复制的同步容器 同步容器类包括两部分 1.vector 和 hashtable (早起jdk的一部分) 2.Collections.synchronizedXXX工厂方法创建的(jdk1.2中才加入的) 同步容器都是线程安全的,但是对于复合操作,需要额外的原创 2011-11-09 12:47:00 · 3366 阅读 · 0 评论 -
阻塞队列 生产者-消费者模式 窃取工作模式(java并发编程实践读书笔记二)
阻塞队列 生产者-消费者模式 窃取工作模式 生产者-消费者模式 简化了开发,因为它解除了生产者类和消费者类之间相互依赖的代码;解耦不同速度的生产,消费等活动。 围绕队列展开设计,生产者把数据放进队列,不用考虑消费者的消费能力,甚至可以根本没有消费者。类似的,消费者也不需要知道生产者是谁,只要从队列中获取数据即可。 阻塞队列可以使用任意原创 2011-11-10 10:23:18 · 4760 阅读 · 0 评论 -
Synchronizer 闭锁(CountDownLatch,FutureTask ) 信号量(Semaphore) 关卡(CyclicBarrier) 知识点总结(java并发编程实践读书笔记三)
Synchronizer Synchronizer是一个对象,可以根据本身的状态调整线程的控制流结构特性:封装状态,而这些状态决定着线程执行到某一点时是通过还是被迫等待 提供操作状态的方法,以及高效的等待Synchronizer进入到期望状态的方法理解:第一句话~ 就阻塞队列来讲,它封装了原创 2011-11-10 22:13:17 · 2062 阅读 · 0 评论 -
为计算机结果建立高效,可伸缩的的高速缓存(java并发编程实践读书笔记四)
复用已有的计算结果,缩短等待时间,提高吞吐量,代价是占用更多的内存 经典思路:使用一个map,每次计算先在map中查找,找不到的情况下进行计算,把计算结果保存到map中,以便下次计算相同值时直接从map中取得计算结果 /*** 这里定义一个Computable接口,实际的计算类和使用的缓存的计算类都实现该接口* 使用的时候可以方便的切换是否使用缓存** @param * @par原创 2011-11-12 19:59:24 · 1271 阅读 · 0 评论