并发编程学习(三)-线程池
2016-02-25 00:00
197 查看
摘要: 线程池中执行任务
显示的为任务创建线程
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(取消请求)”标志,当线程发现标志被设置过之后,任务就会提前结束。
显示的为任务创建线程
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(取消请求)”标志,当线程发现标志被设置过之后,任务就会提前结束。
相关文章推荐
- JAVA中的进程与线程
- 【分享】高手Java核心技术学习笔记
- VIEWGOOD(远古)校园网多媒体系统的搭建
- eclipse 中使用Git
- Java printf用法
- Yii 中Criteria常用方法(转+原)
- java web 一键分享
- java web项目启动加载顺序
- 3.7 Struts2综合应用实例--添加学生信息
- 3.7 Struts2综合应用实例的附件
- Block (存放代码的块)
- python 学习常用链接
- python arg parse
- Spring切入点表达式常用写法
- ASP.NET的图片上传和显示
- ASP.NET MVC 认证模块报错:“System.Configuration.Provider.ProviderException: 未启用角色管理器功能“
- C#添加删除IIS的主机头
- php引用(&)详解及注意事项
- Eclipse SVN插件检出Src下面的包变成了文件夹解决
- 怎么像maven工程一样设置普通Java工程的目录