线程池学习(一)

1.线程池有什么作用

降低资源消耗:通过池化技术重复利⽤已创建的线程,降低线程创建和销毁造成的损耗。 提⾼响应速度:任务到达时,⽆需等待线程创建即可⽴即执⾏。 提⾼线程的可管理性:线程是稀缺资源,如果⽆限制创建,不仅会消耗系统资源,还会因为线程的不合理分布 导致资源调度失衡,降低系统的稳定性。使⽤线程池可以进⾏统⼀的分配、调优和监控。 提供更多更强⼤的功能:线程池具备可拓展性,允许开发⼈员向其中增加更多的功能。⽐如延时定时线程池 ScheduledThreadPoolExecutor,就允许任务延期执⾏或定期执⾏。

2.怎么创建线程池

通过线程工厂指定线程名称前缀

PriorityBlockingQueue<TestA> queue = new PriorityBlockingQueue<>();
		queue.add(new TestA());
		queue.add(new TestA());
		ThreadFactory threadFactory=new TaskThreadFactory("prefix",true,1);
		ThreadPoolExecutor executor = new ThreadPoolExecutor(2, 4, 100, TimeUnit.MILLISECONDS,new LinkedBlockingDeque<>(), threadFactory);
		while (!queue.isEmpty()){
			executor.submit(queue.poll());
		}

3.线程池参数都代表什么意思

corePoolSize核心线程数 maximumPoolSize 最大线程数 keepAliveTime 持续连接时间 TimeUnit 单位 workQueue 队列 threadFactory 线程工厂 handler 拒绝策略

当线程任务过多时,会创建核心线程数,当核心线程处理不过来时,创建最大线程数,若超过最大线程数则放入队列中,若队列放不下则进行拒绝策略,拒绝访问。

线程池执行流程

线程池任务缓冲队列详情

任务拒绝策略

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值