当前位置: 首页 > news >正文

各大网站收录入口北京网页制作网站

各大网站收录入口,北京网页制作网站,简述网站开发平台及常用工具,上海服装外贸公司排名一、线程池 1.1、为什么需要线程池 10年前单核CPU电脑#xff0c;假的多线程#xff0c;像马戏团小丑玩多个球#xff0c;CPU需要来回切换。现在是多核电脑#xff0c;多个线程各自跑在独立的CPU上#xff0c;不用切换效率高。 1.2、优势 线程池做的主要工作是控制运行的…一、线程池 1.1、为什么需要线程池 10年前单核CPU电脑假的多线程像马戏团小丑玩多个球CPU需要来回切换。现在是多核电脑多个线程各自跑在独立的CPU上不用切换效率高。 1.2、优势 线程池做的主要工作是控制运行的线程数量处理过程中将任务放入队列然后在线程创建后启动这些任务如果线程数量超过了最大数量那么超出数量的线程将排队等候等其他线程执行完毕再从队列中取出任务来执行。 1.3、主要特点 线程复用、控制最大并发数、管理线程。 1降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的销耗 2提高响应速度。当任务到达时任务可以不需要等待线程创建就能立即执行 3提高线程的可管理性。线程是稀缺资源如果无限制的创建不仅会销耗系统资源还会降低系统的稳定性使用线程池可以进行统一的分配调优和监控 1.4、架构说明 Java中的线程池是通过Executor框架实现的该框架中用到了ExecutorExecutorsExecutorServiceThreadPoolExecutor这几个类如下所示 1.5、常见的线程池 1.5.1、一池N线程 适用场景执行长期任务性能好创建一个线程池一池有N个固定数量的线程。 说明newFixedThreadPool创建的线程池corePoolSize和maximumPoolSize值是相等的它使用的是LinkedBlockingQueue 1.5.2、一池一线程 适用场景一个任务一个任务的执行一池一线程。 说明newSingleThreadExecutor 创建的线程池corePoolSize和maximumPoolSize值都是1它使用的是LinkedBlockingQueue 1.5.3、可扩容线程 适用场景执行很多短期异步任务线程池根据需要创建新线程可扩容遇强则强。 说明newCachedThreadPool创建的线程池将corePoolSize设置为0将maximumPoolSize设置为Integer.MAX_VALUE它使用的是SynchronousQueue也就是说来了任务就创建线程运行当线程空闲超过60秒就销毁线程。 1.6、 线程池案例 /*** Author : 一叶浮萍归大海* Date: 2023/11/21 8:29* Description: 一个银行网点有10个业务办理窗口周末业务不繁忙开2个窗口业务办理等待区最大能容纳20个人模拟30个人去银行网点办理业务使用线程池处理*/ public class ThreadPoolMainApp {public static void main(String[] args) {ExecutorService pool new ThreadPoolExecutor(2,10,2L,TimeUnit.SECONDS,new ArrayBlockingQueue(20),Executors.defaultThreadFactory(),// new ThreadPoolExecutor.AbortPolicy// new ThreadPoolExecutor.CallerRunsPolicy// new ThreadPoolExecutor.DiscardOldestPolicynew ThreadPoolExecutor.DiscardOldestPolicy());// 30个顾客请求try {for (int i 1; i 30; i) {pool.execute(() - {System.out.println(Thread.currentThread().getName() \t办理业务!);});}} catch (Exception e) {e.printStackTrace();} finally {pool.shutdown();}}} 1.7、ThreadPoolExecutor的底层原理 1.8、线程池7大参数 1.9、线程池的底层工作原理 执行步骤         第一步创建了线程池后开始等待请求         第二步当调用execute()方法添加一个请求任务时线程池会做出如下判断                 a、如果正在运行的线程数量小于corePoolSize那么马上创建线程运行这个任务                 b、如果正在运行的线程数量大于或者等于corePoolSize那么将这个任务放入队列                 c、如果这个时候队列满了且正在运行的线程数量还小于maximumPoolSize那么还是要创建非核心线程立刻运行这个任务                 d、如果队列满了且正在运行的线程数量大于或等于maximumPoolSize那么线程池会启动饱和拒绝策略来执行         第三步当一个线程完成任务时它会从队列中取下一个任务来执行         第四步当一个线程无事可做超过一定的时间keepAliveTime时线程会判断                 a、如果当前运行的线程数大于corePoolSize那么这个线程就会被线程池回收                 b、线程池的所有任务完成后它最终会收缩到corePoolSize的大小 1.10、线程池的拒绝策略 1.10.1、概述 等待队列已经排满了再也塞不下新任务了同时线程池中的max线程也达到了无法继续为新任务服务这个是时候我们就需要拒绝策略机制合理的处理这个问题。 1.10.2、JDK内置的拒绝策略 AbortPolicy(默认)直接抛出RejectedExecutionException异常阻止系统正常运行。 CallerRunsPolicy“调用者运行”一种调节机制该策略既不会抛弃任务也不会抛出异常而是将某些任务回退到调用者从而降低新任务的流量。 DiscardOldestPolicy抛弃队列中等待最久的任务然后把当前任务加人队列中尝试再次提交当前任务。 DiscardPolicy该策略默默地丢弃无法处理的任务不予任何处理也不抛出异常。如果允许任务丢失这是最好的一种策略。 说明以上内置拒绝策略均实现了RejectedExecutionHandle接口 1.11、工作中单一的|固定数的|可变的三种创建线程池的方法哪个用的最多超级大坑 答一个都不用我们工作中只使用自定义的。 Executors中JDK已经给你提供了为什么不用 1.12、工作中如何使用线程池是否自定义过线程池 /*** Author : 一叶浮萍归大海* Date: 2023/11/21 8:29* Description: 一个银行网点有10个业务办理窗口周末业务不繁忙开2个窗口业务办理等待区最大能容纳20个人模拟30个人去银行网点办理业务使用线程池处理*/ public class ThreadPoolMainApp {public static void main(String[] args) {ExecutorService pool new ThreadPoolExecutor(2,10,2L,TimeUnit.SECONDS,new ArrayBlockingQueue(20),Executors.defaultThreadFactory(),// new ThreadPoolExecutor.AbortPolicy// new ThreadPoolExecutor.CallerRunsPolicy// new ThreadPoolExecutor.DiscardOldestPolicynew ThreadPoolExecutor.DiscardOldestPolicy());// 30个顾客请求try {for (int i 1; i 30; i) {pool.execute(() - {System.out.println(Thread.currentThread().getName() \t办理业务!);});}} catch (Exception e) {e.printStackTrace();} finally {pool.shutdown();}}}
http://www.yutouwan.com/news/411168/

相关文章:

  • 教做美食的视频网站wordpress修改logo
  • 商城购物网站建设上海注册建网站
  • wap网站生成系统网站为什么会被k
  • 企业 手机网站昆山广告公司排名
  • 网站百度权重没有数据品牌推广费
  • 厦门网站怎么做怎么免费申请网站域名
  • 自己做菠菜网站wordpress 上传swf
  • 网站页面设计软件意大利语网站建设
  • 重庆九龙网站建设什么软件可以免费制作视频
  • 山东网站建设服务商域名入口
  • 网站正在建设中的图片大全建设部网站备案
  • php 向网站发送数据网站权重多少4
  • 专业微网站建设公司首选编写网站的软件
  • 题库网站建设杭州网站公司设计
  • 南京网站建设与网络营销的关系两个网站链接怎么做
  • 家教网站建设模板网站的建设及发布步骤
  • 企业网站建设目标做摄影网站
  • 哪个着陆页网站想自己做网站需要会什么
  • 上传的网站怎么打开做网站1万多
  • 台州平面设计公司系统优化是什么意思
  • 分销网站方案陵水网站设计公司
  • 你认为公司在建立网站时应满足哪些目标东莞营销型网站建设
  • 风向 网站网站设计注意因素
  • 宠物网站怎么做怎么做阿里巴巴英文网站
  • 网站自定义title中山营销型网站建设
  • 济南品牌网站建设公司从哪里设置网站关键词
  • 西安交易网站建设wordpress用户注册怎么设置
  • 建材做哪些网站好百度指数行业排行
  • 什么网站可以帮人做ppt赚钱制作英文网站
  • 怎么制作网站详细流程wordpress网站结构