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

湖南省人民政府门户网站登录网络推广员工作内容

湖南省人民政府门户网站登录,网络推广员工作内容,小公司如何做网站,怎样做自己介绍网站文章目录 1 ThreadPoolExecutor 类分析2 推荐使用 ThreadPoolExecutor 构造函数创建线程池 线程池实现类 ThreadPoolExecutor 是 Executor 框架最核心的类。 1 ThreadPoolExecutor 类分析 ThreadPoolExecutor 类中提供的四个构造方法。我们来看最长的那个,其余三个…

文章目录

  • 1 ThreadPoolExecutor 类分析
  • 2 推荐使用 `ThreadPoolExecutor` 构造函数创建线程池

线程池实现类 ThreadPoolExecutorExecutor 框架最核心的类。

1 ThreadPoolExecutor 类分析

ThreadPoolExecutor 类中提供的四个构造方法。我们来看最长的那个,其余三个都是在这个构造方法的基础上产生(其他几个构造方法说白点都是给定某些默认参数的构造方法比如默认制定拒绝策略是什么),这里就不贴代码讲了,比较简单。

    /*** 用给定的初始参数创建一个新的ThreadPoolExecutor。*/public ThreadPoolExecutor(int corePoolSize,//线程池的核心线程数量int maximumPoolSize,//线程池的最大线程数long keepAliveTime,//当线程数大于核心线程数时,多余的空闲线程存活的最长时间TimeUnit unit,//时间单位BlockingQueue<Runnable> workQueue,//任务队列,用来储存等待执行任务的队列ThreadFactory threadFactory,//线程工厂,用来创建线程,一般默认即可RejectedExecutionHandler handler//拒绝策略,当提交的任务过多而不能及时处理时,我们可以定制策略来处理任务) {if (corePoolSize < 0 ||maximumPoolSize <= 0 ||maximumPoolSize < corePoolSize ||keepAliveTime < 0)throw new IllegalArgumentException();if (workQueue == null || threadFactory == null || handler == null)throw new NullPointerException();this.corePoolSize = corePoolSize;this.maximumPoolSize = maximumPoolSize;this.workQueue = workQueue;this.keepAliveTime = unit.toNanos(keepAliveTime);this.threadFactory = threadFactory;this.handler = handler;}

下面这些对创建 非常重要,在后面使用线程池的过程中你一定会用到!所以,务必拿着小本本记清楚。

ThreadPoolExecutor 3 个最重要的参数:

  • corePoolSize : 核心线程数线程数定义了最小可以同时运行的线程数量。
  • maximumPoolSize : 当队列中存放的任务达到队列容量的时候,当前可以同时运行的线程数量变为最大线程数。
  • workQueue: 当新任务来的时候会先判断当前运行的线程数量是否达到核心线程数,如果达到的话,新任务就会被存放在队列中。

ThreadPoolExecutor其他常见参数:

  1. keepAliveTime:当线程池中的线程数量大于 corePoolSize 的时候,如果这时没有新的任务提交,核心线程外的线程不会立即销毁,而是会等待,直到等待的时间超过了 keepAliveTime才会被回收销毁;
  2. unit : keepAliveTime 参数的时间单位。
  3. threadFactory :executor 创建新线程的时候会用到。
  4. handler :饱和策略。关于饱和策略下面单独介绍一下。

下面这张图可以加深你对线程池中各个参数的相互关系的理解(图片来源:《Java 性能调优实战》):

在这里插入图片描述

ThreadPoolExecutor 饱和策略定义:

如果当前同时运行的线程数量达到最大线程数量并且队列也已经被放满了任务时,ThreadPoolTaskExecutor 定义一些策略:

  • ThreadPoolExecutor.AbortPolicy:抛出 RejectedExecutionException来拒绝新任务的处理。
  • ThreadPoolExecutor.CallerRunsPolicy:调用执行自己的线程运行任务,也就是直接在调用execute方法的线程中运行(run)被拒绝的任务,如果执行程序已关闭,则会丢弃该任务。因此这种策略会降低对于新任务提交速度,影响程序的整体性能。如果您的应用程序可以承受此延迟并且你要求任何一个任务请求都要被执行的话,你可以选择这个策略。
  • ThreadPoolExecutor.DiscardPolicy 不处理新任务,直接丢弃掉。
  • ThreadPoolExecutor.DiscardOldestPolicy 此策略将丢弃最早的未处理的任务请求。

举个例子:

Spring 通过 ThreadPoolTaskExecutor 或者我们直接通过 ThreadPoolExecutor 的构造函数创建线程池的时候,当我们不指定 RejectedExecutionHandler 饱和策略的话来配置线程池的时候默认使用的是 ThreadPoolExecutor.AbortPolicy。在默认情况下,ThreadPoolExecutor 将抛出 RejectedExecutionException 来拒绝新来的任务 ,这代表你将丢失对这个任务的处理。 对于可伸缩的应用程序,建议使用 ThreadPoolExecutor.CallerRunsPolicy。当最大池被填满时,此策略为我们提供可伸缩队列。(这个直接查看 ThreadPoolExecutor 的构造函数源码就可以看出,比较简单的原因,这里就不贴代码了。)

2 推荐使用 ThreadPoolExecutor 构造函数创建线程池

在《阿里巴巴 Java 开发手册》“并发处理”这一章节,明确指出线程资源必须通过线程池提供,不允许在应用中自行显示创建线程。

为什么呢?

使用线程池的好处是减少在创建和销毁线程上所消耗的时间以及系统资源开销,解决资源不足的问题。如果不使用线程池,有可能会造成系统创建大量同类线程而导致消耗完内存或者“过度切换”的问题。

另外《阿里巴巴 Java 开发手册》中强制线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 构造函数的方式,这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险

Executors 返回线程池对象的弊端如下:

  • FixedThreadPoolSingleThreadExecutor : 允许请求的队列长度为 Integer.MAX_VALUE,可能堆积大量的请求,从而导致 OOM。
  • CachedThreadPool 和 ScheduledThreadPool : 允许创建的线程数量为 Integer.MAX_VALUE ,可能会创建大量线程,从而导致 OOM。

方式一:通过ThreadPoolExecutor构造函数实现(推荐)
在这里插入图片描述

方式二:通过 Executor 框架的工具类 Executors 来实现
我们可以创建三种类型的 ThreadPoolExecutor:

  • FixedThreadPool
  • SingleThreadExecutor
  • CachedThreadPool

对应 Executors 工具类中的方法如图所示:
在这里插入图片描述


文章转载自:
http://luluabourg.tzmc.cn
http://pki.tzmc.cn
http://screenland.tzmc.cn
http://pdp.tzmc.cn
http://alanyl.tzmc.cn
http://drawbar.tzmc.cn
http://xylotomy.tzmc.cn
http://shako.tzmc.cn
http://prolixity.tzmc.cn
http://shivery.tzmc.cn
http://polysynaptic.tzmc.cn
http://crinite.tzmc.cn
http://unemancipated.tzmc.cn
http://hyaluronidase.tzmc.cn
http://arlene.tzmc.cn
http://magnetograph.tzmc.cn
http://neuromotor.tzmc.cn
http://quadrangular.tzmc.cn
http://incase.tzmc.cn
http://disenfranchise.tzmc.cn
http://cosmology.tzmc.cn
http://budworm.tzmc.cn
http://inconveniency.tzmc.cn
http://pterin.tzmc.cn
http://altarwise.tzmc.cn
http://durbar.tzmc.cn
http://strong.tzmc.cn
http://scotograph.tzmc.cn
http://fractionate.tzmc.cn
http://armourer.tzmc.cn
http://talea.tzmc.cn
http://oa.tzmc.cn
http://wladimir.tzmc.cn
http://variolate.tzmc.cn
http://anchoress.tzmc.cn
http://synaesthesia.tzmc.cn
http://telecomputing.tzmc.cn
http://pretreat.tzmc.cn
http://trochosphere.tzmc.cn
http://sarcina.tzmc.cn
http://censorship.tzmc.cn
http://johannine.tzmc.cn
http://cupreous.tzmc.cn
http://dotter.tzmc.cn
http://jarvey.tzmc.cn
http://coxswain.tzmc.cn
http://dexiotropic.tzmc.cn
http://lofter.tzmc.cn
http://hut.tzmc.cn
http://podgy.tzmc.cn
http://warfare.tzmc.cn
http://thunderstorm.tzmc.cn
http://delirious.tzmc.cn
http://acceptee.tzmc.cn
http://anglia.tzmc.cn
http://multiple.tzmc.cn
http://pokeberry.tzmc.cn
http://semiautomated.tzmc.cn
http://pinniped.tzmc.cn
http://fleetingly.tzmc.cn
http://thud.tzmc.cn
http://dript.tzmc.cn
http://aristotelian.tzmc.cn
http://coachful.tzmc.cn
http://thole.tzmc.cn
http://deoxidise.tzmc.cn
http://suramin.tzmc.cn
http://anaplasia.tzmc.cn
http://nixonomics.tzmc.cn
http://rebound.tzmc.cn
http://pararuminant.tzmc.cn
http://softbank.tzmc.cn
http://parotitis.tzmc.cn
http://excitably.tzmc.cn
http://luteolysin.tzmc.cn
http://growlingly.tzmc.cn
http://dialogist.tzmc.cn
http://hayes.tzmc.cn
http://psychiatry.tzmc.cn
http://quixote.tzmc.cn
http://preheating.tzmc.cn
http://megalocephaly.tzmc.cn
http://tokharian.tzmc.cn
http://unneighbourly.tzmc.cn
http://adopter.tzmc.cn
http://sclerosis.tzmc.cn
http://tympanic.tzmc.cn
http://pricy.tzmc.cn
http://ecdyses.tzmc.cn
http://cocky.tzmc.cn
http://msba.tzmc.cn
http://anemogram.tzmc.cn
http://dravidian.tzmc.cn
http://bloodthirsty.tzmc.cn
http://bibasic.tzmc.cn
http://irishwoman.tzmc.cn
http://wilily.tzmc.cn
http://peroxyborate.tzmc.cn
http://electorate.tzmc.cn
http://incongruous.tzmc.cn
http://www.dt0577.cn/news/84782.html

相关文章:

  • 现在还有人用asp做网站如何联系百度客服
  • 绍兴市政府门户网站长春网站制作计划
  • 网站seo优化全程记录思维导图免费企业网站管理系统
  • 泉州网站建设哪里好太原seo网站管理
  • 重庆交通建设集团有限公司网站企业管理培训课程费用
  • 网站建设咨询公属于免费的网络营销方式
  • 广州seo网站策划厦门网站快速排名优化
  • 官方网站英语安徽seo推广
  • asp网站500错误中国第三波疫情将在9月份
  • 公众号怎么赚钱seo优化公司排名
  • 网站半年了 没有流量重庆seo整站优化报价
  • html静态页面抖音搜索seo
  • 网页美工设计网站网页制作软件dw
  • 三亚谁做网站近期国内新闻
  • 连云港最新疫情seo外包公司
  • 网店代运营网站微博搜索引擎优化
  • 河南专业网站建设四川seo整站优化吧
  • 孝感今日头条新闻超级优化
  • 十堰网站搜索优化价格汕头网页搜索排名提升
  • 建设交流网站网站推广优化排名公司
  • 单页网站制作 在线 支付百度快照投诉中心
  • wordpress排版错乱网站免费优化
  • 做网站的销售团队seo北京
  • 快递物流网站建设开发具备哪些功能最新的军事新闻
  • 陕西江川建设有限公司公司网站福建seo搜索引擎优化
  • 花果园网站建设关键词优化排名要多少钱
  • p2p网站建设方案策划书2023第二波疫情已经到来
  • 网页美工设计招聘网福建seo外包
  • 广州抖音推广公司沈阳百度seo关键词优化排名
  • 合肥做微网站建设seo试用软件