线程池简介

本文详细介绍了线程池的重要性和使用原因,如减少线程创建开销和内存占用。探讨了线程池的应用场合、构造方法参数、工作队列类型、四种线程池构造方法及其优缺点,以及如何正确创建和停止线程池。此外,还讨论了线程池的拒绝策略和使用线程池的注意事项。
摘要由CSDN通过智能技术生成

线程池的重要性

 

什么是池?

软件中的池,可以理解为计划经济

为什么使用线程池?

1.反复创建线程开销大

2.过多的线程会占用太多的内存

用少量的线程——避免内存占用过多

让这部分线程都保持工作,且可以反复执行任务——避免生命周期的损耗

应用场合

创建和停止线程池

线程池构造方法的参数

 

添加线程的规则

 

增减线程的特点

 

工作队列

常见的队列类型

1.直接交接:SynchronousQueue

2.无界队列:LinkedBlockingQueue

3.有界队列:ArrayBlockingQueue

4.延迟队列:DelayedWorkQueue

线程池手动创建还是自动创建

自动创建(即直接调用JDK封装好的构造方法)

1.newFixedThreadPool

package threadpool;
​
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
​
/**
 *  演示newFixedThreadPool
 *  固定的线程数
 */
public class FixedThreadPoolTest {
    public static void main(String[] args) {
        ExecutorService executorService = Executors.newFixedThreadPool(4);
        for (int i = 0; 0 < 1000 ;
        i++){
            executorService.execute(new Task());
        }
    }
​
​
}
// 任务类
class Task implements Runnable{
    @Override
    public void run() {
        try {
            Thread.sleep(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值