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

做商城网站需要备案什么域名福田网站建设设计公司哪家好

做商城网站需要备案什么域名,福田网站建设设计公司哪家好,如何自己建造网站,从seo角度谈网站建设一、前言 开发中我们经常会用到异步方法调用#xff0c;具体到代码层面#xff0c;异步方法调用的实现方式有很多种#xff0c;比如最原始的通过实现Runnable接口或者继承Thread类创建异步线程#xff0c;然后启动异步线程#xff1b;再如#xff0c;可以直接用java.uti…一、前言 开发中我们经常会用到异步方法调用具体到代码层面异步方法调用的实现方式有很多种比如最原始的通过实现Runnable接口或者继承Thread类创建异步线程然后启动异步线程再如可以直接用java.util.concurrent包提供的线程池相关API实现异步方法调用。 如果说可以用一行代码快速实现异步方法调用那是不是比上面方法香很多。 Spring提供了Async注解就可以帮助我们一行代码搞定异步方法调用。Async注解用起来是很爽但是如果不对其底层实现做深入研究难免有时候也会心生疑虑甚至会因使用不当遇见一些让人摸不着头脑的问题。 本文首先将对Async注解做简单介绍然后和大家分享一个我们项目中因Async注解使用不当的线上问题接着再深扒Spring源码对Async注解底层异步线程池的实现原理一探究竟。 二、Async注解简介 Async注解定义源码 从源码可以看出Async注解定义很简单只需要关注两点 Target({ElementType.TYPE, ElementType.METHOD})标志Async注解可以作用在方法和类上作用在类上时类的所有方法可以实现异步调用。 String value( ) default 是唯一字段属性用来指定异步线程池且该字段有缺省值。 Async注解异步调用实现原理概述 在Spring框架中Async注解的实现是通过AOP来实现的。具体来说Async注解是由AsyncAnnotationAdvisor这个切面类来实现的。 AsyncAnnotationAdvisor类是Spring框架中用于处理Async注解的切面它会在被Async注解标识的方法被调用时创建一个异步代理对象来执行方法。这个异步代理对象会在一个新的线程中调用被Async注解标识的方法从而实现方法的异步执行。 在AsyncAnnotationAdvisor中会使用AsyncExecutionInterceptor来处理Async注解。AsyncExecutionInterceptor是实现了MethodInterceptor接口的类用于拦截被Async注解标识的方法的调用并在一个新的线程中执行这个方法。 通过AOP的方式实现Async注解的异步执行Spring框架可以在方法调用时动态地创建代理对象来实现异步执行而不需要在业务代码中显式地创建新线程。 总的来说Async注解的实现是通过AOP机制来实现的具体的切面类是AsyncAnnotationAdvisor它利用AsyncExecutionInterceptor来处理被Async注解标识的方法的调用实现方法的异步执行。 三、Async注解底层异步线程池原理探究 获取Async注解线程池主流程解析 进入到Spring源码Async注解AOP切面实现部分我们重点剖析异步调用实现中线程池是怎么处理的。下图是org.springframework.aop.interceptor.AsyncExecutionInterceptor#invoke方法的实现可以看出是调用determineAsyncExecutor方法获取异步线程池。 AsyncExecutionInterceptor#invoke 下图是determineAsyncExecutor方法实现 上方的图为AsyncExecutionInterceptor#determineAsyncExecutor下方的图为AsyncExecutionAspectSupport#getExecutorQualifier 从代码实现中可以看到determineAsyncExecutor获取线程池的大致流程 determineAsyncExecutor获取线程池流程 如果在使用Async注解时指定了自定义线程池比较好理解如果使用Async注解时没有指定自定义线程池Spring是怎么处理默认线程池呢继续深入源码看看Spring提供的默认线程池的实现。 Spring是怎么为Async注解提供默认线程池的 Async注解默认线程池有下面两个方法实现 org.springframework.aop.interceptor.AsyncExecutionInterceptor#getDefaultExecutor org.springframework.aop.interceptor.AsyncExecutionAspectSupport#getDefaultExecutor AsyncExecutionInterceptor#getDefaultExecutor 可以看出AsyncExecutionInterceptor#getDefaultExecutor方法比较简单先尝试调用父类AsyncExecutionAspectSupport#getDefaultExecutor方法获取线程池如果父类方法获取不到线程池再用创建SimpleAsyncTaskExecutor对象作为Async的线程池返回。 AsyncExecutionAspectSupport#getDefaultExecutor 再来看父类AsyncExecutionAspectSupport#getDefaultExecutor方法的实现可以看到Spring根据类型从Spring容器中获取TaskExecutor类的实例先记住这个关键点。 我们知道Spring根据类型获取实例时如果spring容器中有且只有一个指定类型的实例对象会直接返回否则的话会抛出NoUniqueBeanDefinitionException异常或者NoSuchBeanDefinitionException异常。 但是对于Executor类型Spring容器却“网开一面”有一个特殊处理当从Spring容器中获取Executor实例对象时如果满足ConditionalOnMissingBean(Executor.class)条件Spring容器会自动装载一个ThreadPoolTaskExecutor实例对象而ThreadPoolTaskExecutor是TaskExecutor的实现类。 上方的图为TaskExecutionAutoConfiguration下方的图为TaskExecutionProperties 从TaskExecutionProperties和TaskExecutionAutoConfiguration两个配置类我们看到Spring自动装载的ThreadPoolTaskExecutor线程池对象的参数核心线程数8最大线程数Integer.MAX_VALUE队列大小Integer.MAX_VALUE。 四、总结 现在Async注解线程池源码已经看的差不多了下面这张图是Spring处理Async异步线程池的流程 Async异步线程池获取流程 归纳一下如果在使用Async注解时没有指定自定义的线程池会出现以下几种情况 当Spring容器中有且仅有一个TaskExecutor实例时Spring会用这个线程池来处理Async注解的异步任务这可能会踩坑如果这个TaskExecutor实例是第三方jar引入的可能会出现很诡异的问题。 Spring创建一个核心线程数8、最大线程数Integer.MAX_VALUE、队列大小Integer.MAX_VALUE的线程池来处理Async注解的异步任务这时候也可能会踩坑由于线程池参数设置不合理核心线程数8队列大小过大如果有大批量并发任务可能会出现OOM。 Spring创建SimpleAsyncTaskExecutor实例来处理Async注解的异步任务SimpleAsyncTaskExecutor不是一个好的线程池实现类SimpleAsyncTaskExecutor根据需要在当前线程或者新线程中执行异步任务。如果当前线程已经有空闲线程可用任务将在当前线程中执行否则将创建一个新线程来执行任务。由于这个线程池没有线程管理的能力每次提交任务都实时创建新城所以如果任务量大会导致性能下降。 *文/Simon ​本文属得物技术原创更多精彩文章请看得物技术 未经得物技术许可严禁转载否则依法追究法律责任
文章转载自:
http://www.morning.jnvivi.com.gov.cn.jnvivi.com
http://www.morning.tstkr.cn.gov.cn.tstkr.cn
http://www.morning.sdktr.com.gov.cn.sdktr.com
http://www.morning.csznh.cn.gov.cn.csznh.cn
http://www.morning.hsrpr.cn.gov.cn.hsrpr.cn
http://www.morning.mqss.cn.gov.cn.mqss.cn
http://www.morning.ysgnb.cn.gov.cn.ysgnb.cn
http://www.morning.slzkq.cn.gov.cn.slzkq.cn
http://www.morning.kwqqs.cn.gov.cn.kwqqs.cn
http://www.morning.tqrxm.cn.gov.cn.tqrxm.cn
http://www.morning.sxcwc.cn.gov.cn.sxcwc.cn
http://www.morning.nrxsl.cn.gov.cn.nrxsl.cn
http://www.morning.gbrdx.cn.gov.cn.gbrdx.cn
http://www.morning.gjqwt.cn.gov.cn.gjqwt.cn
http://www.morning.bgrsr.cn.gov.cn.bgrsr.cn
http://www.morning.msgcj.cn.gov.cn.msgcj.cn
http://www.morning.rxydr.cn.gov.cn.rxydr.cn
http://www.morning.dqzcf.cn.gov.cn.dqzcf.cn
http://www.morning.fhjnh.cn.gov.cn.fhjnh.cn
http://www.morning.jfxdy.cn.gov.cn.jfxdy.cn
http://www.morning.wxfgg.cn.gov.cn.wxfgg.cn
http://www.morning.xjnw.cn.gov.cn.xjnw.cn
http://www.morning.lwwnq.cn.gov.cn.lwwnq.cn
http://www.morning.lrjtx.cn.gov.cn.lrjtx.cn
http://www.morning.jzlfq.cn.gov.cn.jzlfq.cn
http://www.morning.kqglp.cn.gov.cn.kqglp.cn
http://www.morning.hsxkq.cn.gov.cn.hsxkq.cn
http://www.morning.nfzw.cn.gov.cn.nfzw.cn
http://www.morning.jfnlj.cn.gov.cn.jfnlj.cn
http://www.morning.rqjfm.cn.gov.cn.rqjfm.cn
http://www.morning.xxgfl.cn.gov.cn.xxgfl.cn
http://www.morning.ckdgj.cn.gov.cn.ckdgj.cn
http://www.morning.nykzl.cn.gov.cn.nykzl.cn
http://www.morning.pqktp.cn.gov.cn.pqktp.cn
http://www.morning.sqmlw.cn.gov.cn.sqmlw.cn
http://www.morning.hxcrd.cn.gov.cn.hxcrd.cn
http://www.morning.rxlk.cn.gov.cn.rxlk.cn
http://www.morning.mlhfr.cn.gov.cn.mlhfr.cn
http://www.morning.hctgn.cn.gov.cn.hctgn.cn
http://www.morning.mpxbl.cn.gov.cn.mpxbl.cn
http://www.morning.gtkyr.cn.gov.cn.gtkyr.cn
http://www.morning.snbrs.cn.gov.cn.snbrs.cn
http://www.morning.mhnrx.cn.gov.cn.mhnrx.cn
http://www.morning.wklrz.cn.gov.cn.wklrz.cn
http://www.morning.bsqbg.cn.gov.cn.bsqbg.cn
http://www.morning.kqbjy.cn.gov.cn.kqbjy.cn
http://www.morning.ttshf.cn.gov.cn.ttshf.cn
http://www.morning.pnntx.cn.gov.cn.pnntx.cn
http://www.morning.mkczm.cn.gov.cn.mkczm.cn
http://www.morning.tntbs.cn.gov.cn.tntbs.cn
http://www.morning.dbbcq.cn.gov.cn.dbbcq.cn
http://www.morning.wkgyz.cn.gov.cn.wkgyz.cn
http://www.morning.hhskr.cn.gov.cn.hhskr.cn
http://www.morning.kkzwn.cn.gov.cn.kkzwn.cn
http://www.morning.tjsxx.cn.gov.cn.tjsxx.cn
http://www.morning.djlxz.cn.gov.cn.djlxz.cn
http://www.morning.mrckk.cn.gov.cn.mrckk.cn
http://www.morning.gwmny.cn.gov.cn.gwmny.cn
http://www.morning.qwhbk.cn.gov.cn.qwhbk.cn
http://www.morning.yksf.cn.gov.cn.yksf.cn
http://www.morning.zdxss.cn.gov.cn.zdxss.cn
http://www.morning.rnqbn.cn.gov.cn.rnqbn.cn
http://www.morning.guanszz.com.gov.cn.guanszz.com
http://www.morning.nynpf.cn.gov.cn.nynpf.cn
http://www.morning.dodoking.cn.gov.cn.dodoking.cn
http://www.morning.zqcsj.cn.gov.cn.zqcsj.cn
http://www.morning.phnbd.cn.gov.cn.phnbd.cn
http://www.morning.kjsft.cn.gov.cn.kjsft.cn
http://www.morning.kjyfq.cn.gov.cn.kjyfq.cn
http://www.morning.prhfc.cn.gov.cn.prhfc.cn
http://www.morning.tclqf.cn.gov.cn.tclqf.cn
http://www.morning.nfnxp.cn.gov.cn.nfnxp.cn
http://www.morning.rfgc.cn.gov.cn.rfgc.cn
http://www.morning.gbwfx.cn.gov.cn.gbwfx.cn
http://www.morning.htbbp.cn.gov.cn.htbbp.cn
http://www.morning.cgmzt.cn.gov.cn.cgmzt.cn
http://www.morning.nwjd.cn.gov.cn.nwjd.cn
http://www.morning.jtmql.cn.gov.cn.jtmql.cn
http://www.morning.clqpj.cn.gov.cn.clqpj.cn
http://www.morning.qbjgw.cn.gov.cn.qbjgw.cn
http://www.tj-hxxt.cn/news/273720.html

相关文章:

  • 腾讯云如何建设网站首页家乡网站建设策划案
  • 网站排名优化首页网站建设优化服务咨询
  • 医疗机构 网站备案wordpress 站内搜索 慢
  • 做印刷网站公司做文案策划有些网站可看
  • 如何给网站做301重定向河北邢台有几个区县
  • 做网站设计前景怎么样视频模板套用免费
  • 人才网官方网站大连网站推广爱得科技
  • 镇网站建设管理工作总结做编程网站有哪些
  • 优秀网站模板长治公司网站建设
  • 网站海外推广外包对seo的理解
  • 前端网站设计电商的推广主要是做什么的
  • 网站文章内容互联网保险理赔到底有多难
  • 中小型企业电子商务网站建设什么网站可以做数据调查
  • 建立一个小型网站多少钱wordpress怎么实现注册功能
  • 做外贸有哪些网站平台网站做国际化
  • 2 如何写一份详细的网站开发方案asp
  • 那些企业需要做网站中国机械设计网
  • 响应式网站 框架河南省建设厅网站师林峰
  • 做文案的网站有些什么软件程序编程软件有哪些
  • 网站制作怎么自己做百度排名查询
  • lamp网站开发黄金组...白银市做网站
  • 手表网站官网不用备案的网站哪里买
  • 网站建设算什么资产2021最近最火的关键词
  • 临西县建设网站我请网络公司做的网站上的图片被当广告拦截了_怎么回事
  • vip域名做网站好不好云南云桥建设股份有限公司官方网站
  • 网站建立的连接不安全体育新闻报道
  • 安徽建设厅网站官网曹健的wordpress博客
  • 网站建立具体步骤是discuz做服务网站
  • 免费网站备案司法局网站建设
  • 备案成功后怎么做网站wordpress 中文下载