您的位置:首页 > 其它

线程池的简单理解及使用

2018-03-29 15:01 260 查看
线程池的技术背景

1、线程的创建和销毁很耗资源,重用线程池中的线程。减少因对象创建销毁所带来的性能开销
2、有效控制线程的最大并发数,提高系统资源利用率,同时避免过多的资源竞争,避免堵塞;

线程池框架Executor
Executor : 所有线程池的接口。 
ExecutorService:增加Executor的行为(执行execute,关闭shutdown),是Executor实现类的最直接接口。
Executors : 提供一系列的工厂方法(静态方法),(直接调用)创建生成线程池。
eg:ExecutorService pool = Executors.newSingleThreadExecutor();
其中Executors生成的常见线程池可分为4类:

1、newSingleThreadExecutor
单个线程的线程池
2、newFixedThreadExecutor
固定数量线程池
3、newCacheThreadExecutor(推荐)
可缓存线程池,当线程池大小超过处理任务所需的线程,就会回收部分空闲线程。有任务来,又智能添加
4、newScheduleThreadExecutor
大小无限制线程池,支持定时和周期的执行线程

public class TestCachedThreadPool {
public static void main(String[] args) {
//创建一个可重用固定线程数的线程池
ExecutorService pool = Executors.newCachedThreadPool();
//创建实现了Runnable接口对象
Thread t1 = new Thread ();
Thread t2 = new Thread ();
Thread t3 = new Thread ();
Thread t4 = new Thread ();
Thread t5 = new Thread ();
//将线程放入池中进行执行
pool.execute(t1);
pool.execute(t2);
pool.execute(t3);
pool.execute(t4);
pool.execute(t5);
//关闭线程池
pool.shutdown();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: