首页 > 编程语言 > 详细

线程池的优点及运行原理

时间:2020-07-24 00:40:59      阅读:120      评论:0      收藏:0      [点我收藏+]

线程池的好处

1. 降低资源消耗。减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。
2. 提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。
3. 提高线程的可管理性。可以根据系统的承受能力,调整线程池中工作线线程的数目,防止因为消耗过多的内存,而把服务器累趴下(每个线程需要大约1MB内存,线程开的越多,消耗的内存也就越大,最后死机)

 

- 线程池的工作原理:
- 线程池被创建,就会初始化指定数量的线程
- 往线程池中添加任务:
- 如果线程池中有多条空闲的线程,那么就会随机分配线程来执行任务
- 如果线程池中没有空闲的线程,那么添加的任务就在任务队列中进行等待,当有线程执行完任务,空闲下来了,就会分配空闲线程来执行等待的任务

public class MyCallable implements Callable<Integer> {

    int num;
    
    public MyCallable(int num) {
        this.num = num;
    }

    @Override
    public Integer call() throws Exception {
        int sum = 0;

        for (int i = 1; i <= num; i++) {
            sum += i;
        }
        return sum;
    }
}
public class Test {
public static void main(String[] args) throws ExecutionException, InterruptedException {
// 需求:使用线程池方式执行任务,返回1-n的和
// 创建线程池,初始化指定数量的线程
ExecutorService es = Executors.newFixedThreadPool(2);
// 创建任务
MyCallable mc = new MyCallable(100);
// 提交任务,执行任务
Future<Integer> f = es.submit(mc);
// get(): 可以获取线程执行完任务后返回的结果
System.out.println("1-100的和:"+f.get());

}
}
 

 

线程池的优点及运行原理

原文:https://www.cnblogs.com/-star/p/13369295.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!