线程池的简单理解及使用

线程池的技术背景


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();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值