您的位置:首页 > 编程语言

并发编程学习(三)-线程池

2016-02-25 00:00 155 查看
摘要: 线程池中执行任务

显示的为任务创建线程
Runnable task = new Runnable()
{
public void run()
{ handleRequest(xx); }
};
new Thread(task).start();

2.无限制创建线程的弊端:线程生命周期的消耗、资源消耗、稳定性。

Executor接口的重要作用: 控制执行策略

private static final Executor exec= Executors.newFixedThreadPool(poolSize);

Runnable task = new Runnable()
{
public void run()
{ handleRequest(xx); }
};

exec.execute(task);

3.Executor 创建的线程池种类:
newFixedThreadPool创建一个指定工作线程数量的线程池
newCachedThreadPool创建一个可缓存的线程池

newSingleThreadExecutor创建一个单线程化的Executor

newScheduleThreadPool创建一个定长的线程池,而且支持定时的以及周期性的任务执行,类似于Timer

4.为了更好的解决Executor执行服务的生命周期问题,ExecutorService接口扩展了Executor,添加了一些用于生命周期管理的方法。

public interface ExecutorSrevice extends Executor

{

void shutdown();

List<Runnable> shutdownNow();

boolean isShutdown();

boolean isTerminated();

}

中断:协作机制,使一个线程能够要求另外一个线程停止当前工作。
任务取消:1、用户请求取消;2、定时操作 ;3、错误
一个可取消的任务必须拥有一个取消策略(how,when,what)
协作机制的一种:设置一个“cancellation requested(取消请求)”标志,当线程发现标志被设置过之后,任务就会提前结束。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  线程中执行任务