线程池

网友投稿 572 2022-05-29

import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Test { /**  *   * 1  我想看文档       Word    word转换成Pdf存储  * 2 文档处理中,请稍后再试   */ public  void oldHandle(String[] args) { /**  * 使用循环模拟许多用户请求的场景  */ for (int request = 0; request <=100; request++) { new  Thread(()-> { System.out.println("文档处理开始!"); try { /**  * 将Word转换成PDF格式:处理很长很长的耗时过程  */ Thread.sleep(1000L*30); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("文档处理结束!"); } ).start(); } } /**  * 新的处理方式  * @param args  */ public static void main(String[] args) { /**  * 开启了一个线程池:线程个数是10个  */ ExecutorService threadPool = Executors.newFixedThreadPool(10); for (int request = 0; request <=100; request++) { threadPool.execute( ()-> { System.out.println("文档处理开始!"); try { /**  * 将Word转换成PDF格式:处理很长很长的耗时过程  */ Thread.sleep(1000L*30); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("文档处理结束!"); } ); } } }

线程池简介

什么是线程池

线程池顾名思义就是事先创建若干个可执行的线程放入一个池(容器)中,需要的时候从池中

获取线程不用自行创建,使用完毕不需要销毁线程而是放回池中,从而减少创建和销毁线程对象

的开销。

线程池带来的好处

1、降低资源消耗

2、提高响应速度

3、提高线程的可管理性

面试题:简单线程池设计

面试官

同学你好,你能独立设计出一个简单线程池吗?

池子   1、开启/初始化/关闭

2 、获取线程

3、归还线程

问题:创建多少

没有线程了,咋整

---------------------

升级版

线程池

直接提交任务   异步通知

-------------

中间过程省略        有一个任务 队列存任务          有一个执行器,

问题:

创建多少

满了,怎么办

数组要多长

任务调度

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:神经网络的几点思考
下一篇:【软通鲲鹏云最佳实践17】Nacos-1.1.3 鲲鹏云服务器安装实践
相关文章