python面试题【黑铁 IV】(python面试题基础)
632
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小时内删除侵权内容。