- 博客(4)
- 收藏
- 关注
原创 Future和Callable,CompletionService实现并行化
Callable和Future实现并行化 Future表示一个任务的生命周期,并可以判断是否完成和取消。 接口 方法如下: boolean cancel(boolean);取消任务 V get();获取结果,阻塞等待 V get(long, TimeUnit);最大超时等待(时间,时间单位) boolean isCancelled(); boolean isDone(); 如下面代码示例:当加载...
2018-11-07 21:09:54 211
原创 线程池(Executor框架)
任务是一组逻辑工作单元,而线程则是使任务异步执行的机制。 当把所有任务都放在单个线程中串行执行时,会产生糟糕的响应性; “为每个任务分配一个线程”资源管理的复杂性会升高,不足如下: 线程生命周期的开销非常高。(创建和销毁) 资源消耗 活跃资源消耗资源,尤其内存。当可运行线程大于可用处理器时,有些线程将闲置,从而闲置线程占用许多内存,给垃圾回收器带来压力,而且在竞争CPU会有其他性能消耗。 稳定性...
2018-11-07 08:54:10 849 1
原创 构建 高效可伸缩的结果缓存
通过HashMap实现缓存 Computable接口 public interface Computable<A, V> { V compute(A arg) throws InterruptedException; } **ExpensiveFunction **(表示结果的计算过程) public class ExpensiveFunction implements Compu...
2018-11-05 08:45:46 171
原创 同步工具类(闭锁,信号量,FutureTask,信号量,栅栏)
同步工具类可以使任何一个对象,只要它根据自身的状态来协调线程的控制流。阻塞队列可以作为同步工具类,其他类型的同步工具类还包括信号量,栅栏以及闭锁。 所有的同步工具类都包含一些特定的结构化属性:封装了一些状态,这些状态将决定执行同步工具类的线程是继续执行还是等待,还提供一些方法对状态进行操作,自己用于高效的等待同步工具类进入预期状态的方法。 闭锁 可以延迟线程的进度直到其到达终止状态。 闭锁作用相当...
2018-11-04 18:12:14 360
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人