java多线程编程
文章平均质量分 65
yychao
这个作者很懒,什么都没留下…
展开
-
java concurrent包中任务执行框架分析
提到java并发编程必然绕不过java的线程和任务接口;那么,构建java多线程程序,必然需要使用到Thread类和Runnable接口;此处,只考虑异步任务创建、线程创建与启动,暂时不考虑线程互斥和同步、线程安全等;看看通常异步任务创建与线程创建、启动,通常使用两种方式创建任务、并启动线程执行任务:方式一:继承Thread,重写run方法class Task extends Thread{...原创 2012-04-26 22:43:13 · 104 阅读 · 0 评论 -
ThreadPoolExecutor机制
ThreadPoolExecutor作为java.util.concurrent包对外提供基础实现,以内部线程池的形式对外提供管理任务执行,线程调度,线程池管理等等服务;Executors方法提供的线程服务,都是通过参数设置来实现不同的线程池机制。先来了解其线程池管理的机制,有助于正确使用,避免错误使用导致严重故障。先来看看ThreadPoolExecutor都有那些参数: public...原创 2012-04-28 09:38:47 · 99 阅读 · 0 评论 -
ThreadPoolExecutor分析
ThreadPoolExecutor 状态: RUNNING:接受新任务,并处理队列的任务SHUTDOWN:不接受新任务,但是处理等待队列的任务STOP:不接受新任务,不处理等待队列的任务,并且中断正在执行的任务TERMINATED:和STOP相同,并附加所有线程已终结 状态转换: RUNNING --> SHUTDOWN : 调用shutdown(),...原创 2012-11-15 22:26:06 · 94 阅读 · 0 评论 -
ScheduledThreadPoolExecutor源码分析
ScheduledThreadPoolExecutor实现: public class ScheduledThreadPoolExecutor extends ThreadPoolExecutor implements ScheduledExecutorService { /** * False if should cancel...原创 2012-11-15 22:26:32 · 128 阅读 · 0 评论 -
ExecutorCompletionService实现解析
ExecutorCompletionService解耦异步任务的生产者和消费者;当有任务执行完毕时,可以通过take直接获取结果处理; ExecutorCompletionService线程执行委托给Executor的实际实现,其使用BlockingQueue保存已完成任务队列,同时提供了QueueingFuture对提交任务进行装饰,并提交执行; QueueingFuture的实...原创 2012-11-15 22:26:59 · 99 阅读 · 0 评论 -
FutureTask实现分析
FutureTask实现一个可以取消的异步计算任务。 FutureTask的同步控制有内部类Sync负责;使用AQS的sync state表示运行状态。 FutureTask的状态:RUNNING =1: 表示任务正在运行RAN =2: 表示任务已经运行结束CANCELLED =4: 表示任务被取消任务创建时,state = 0 FutureTask的同步操...原创 2012-11-15 22:27:15 · 100 阅读 · 0 评论