线程池

举报
zwy 发表于 2020/07/29 21:35:52 2020/07/29
【摘要】 import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class Test { /** * * 1 我想看文档 Word word转换成Pdf存储 * 2 文档处理中,请稍后再试 */ public void oldHandle(St...
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、归还线程

                

  问题:创建多少

     没有线程了,咋整

     

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

 升级版

     直接提交任务   异步通知

     

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

   

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

 问题:

    创建多少

    满了,怎么办

   数组要多长

    

    

    

   

   

                 

                

                

                

                

                

                

                


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。