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

广州网站建设联系电话电脑做网站软件

广州网站建设联系电话,电脑做网站软件,适合大学生做的网站,网站建设用的工具一、jdk的阻塞队列#xff1a; 二、Spring boot工程的有哪些阻塞队列呢#xff1f; 1、默认注入的ThreadPoolTaskExecutor 视频解说#xff1a; 线程池篇-springboot项目中的service层里简单注入ThreadPoolTaskExecutor并且使用_哔哩哔哩_bilibili 程序代码#xff1a;…一、jdk的阻塞队列 二、Spring boot工程的有哪些阻塞队列呢 1、默认注入的ThreadPoolTaskExecutor 视频解说 线程池篇-springboot项目中的service层里简单注入ThreadPoolTaskExecutor并且使用_哔哩哔哩_bilibili 程序代码ThreadPoolDemo/ThreadPool00 · xin麒/XinQiUtilsOrDemo - 码云 - 开源中国 (gitee.com) 简单在service层注入的话是这样的 Autowired ThreadPoolTaskExecutor threadPoolTaskExecutor;同时在这里使用这个线程池 Override public Object springbootThreadPool(Long count) {try {threadPoolTaskExecutor.execute(() - {try {Thread.sleep(1000 * 1);log.debug(v me 50);} catch (InterruptedException e) {e.printStackTrace();}});} catch (Exception e) {e.printStackTrace();}return nice; }以debug方式启动项目来查看一下发现这里默认使用的阻塞队列是 2、自定义ThreadPoolTaskExecutor 视频解说 【2】https://www.bilibili.com/video/BV1Qu4y1X7zk 【3】https://www.bilibili.com/video/BV1Cu4y1i7Ae 程序代码 https://gitee.com/flowers-bloom-is-the-sea/XinQiUtilsOrDemo/tree/master/ThreadPoolDemo/ThreadPool0 验证方式1-通过启动springboot工程通过debug形式查看 Bean(xinTaskExecutor) public Executor xinTaskExecutor() {ThreadPoolTaskExecutor taskExecutor new ThreadPoolTaskExecutor();//设置线程池参数信息taskExecutor.setCorePoolSize(10);taskExecutor.setMaxPoolSize(50);taskExecutor.setQueueCapacity(0);taskExecutor.setKeepAliveSeconds(60);taskExecutor.setThreadNamePrefix(xinTaskExecutor--);taskExecutor.setWaitForTasksToCompleteOnShutdown(true);taskExecutor.setAwaitTerminationSeconds(60);//修改拒绝策略为使用当前线程执行taskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.AbortPolicy());//初始化线程池taskExecutor.initialize();return taskExecutor; }验证方式2-main方法创建并初始化 通过debug形式查看 ①查看initialize方法就可以了 public static void main(String[] args) {ThreadPoolTaskExecutor taskExecutor new ThreadPoolTaskExecutor();//设置线程池参数信息taskExecutor.setCorePoolSize(10);taskExecutor.setMaxPoolSize(50);taskExecutor.setQueueCapacity(0);taskExecutor.setKeepAliveSeconds(60);taskExecutor.setThreadNamePrefix(myExecutor--);taskExecutor.setWaitForTasksToCompleteOnShutdown(true);taskExecutor.setAwaitTerminationSeconds(10);//修改拒绝策略为使用当前线程执行taskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.AbortPolicy());//初始化线程池taskExecutor.initialize(); }②可以看到ExecutorConfigurationSupport类里面有这个方法 public void initialize() {if (logger.isInfoEnabled()) {logger.info(Initializing ExecutorService (this.beanName ! null ? this.beanName : ));}if (!this.threadNamePrefixSet this.beanName ! null) {setThreadNamePrefix(this.beanName -);}this.executor initializeExecutor(this.threadFactory, this.rejectedExecutionHandler); }直接看this.executor initializeExecutor(this.threadFactory, this.rejectedExecutionHandler) ③来到org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor Override protected ExecutorService initializeExecutor(ThreadFactory threadFactory, RejectedExecutionHandler rejectedExecutionHandler) {BlockingQueueRunnable queue createQueue(this.queueCapacity);ThreadPoolExecutor executor;if (this.taskDecorator ! null) {executor new ThreadPoolExecutor(this.corePoolSize, this.maxPoolSize, this.keepAliveSeconds, TimeUnit.SECONDS,queue, threadFactory, rejectedExecutionHandler) {Overridepublic void execute(Runnable command) {Runnable decorated taskDecorator.decorate(command);if (decorated ! command) {decoratedTaskMap.put(decorated, command);}super.execute(decorated);}};}else {executor new ThreadPoolExecutor(this.corePoolSize, this.maxPoolSize, this.keepAliveSeconds, TimeUnit.SECONDS,queue, threadFactory, rejectedExecutionHandler);}if (this.allowCoreThreadTimeOut) {executor.allowCoreThreadTimeOut(true);}this.threadPoolExecutor executor;return executor; }直接看createQueue(this.queueCapacity)即可 ④org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor#createQueue 可以看到要么new LinkedBlockingQueue(queueCapacity)要么就new SynchronousQueue() protected BlockingQueueRunnable createQueue(int queueCapacity) {if (queueCapacity 0) {return new LinkedBlockingQueue(queueCapacity);}else {return new SynchronousQueue();} }那么有没有其他阻塞队列可选呢这个我就没详细去看了可以自己尝试下找一下有没有其他方式可以的难道说重写在里面的方法吗可行性有待验证。如果创建一个继承了org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor类且重写了createQueue方法的话那么可以考虑下。就这样吧。 三、和jdk的线程池的区别 1、感觉没什么区别因为ThreadPoolTaskExecutor内使用的线程池本来就是成员变量中的 Nullable private ThreadPoolExecutor threadPoolExecutor;2、springboot的项目里可以通过注解方式来执行方法 只不过指定使用哪个线程池来执行要异步执行方法的内容。 https://www.bilibili.com/video/BV1A14y1B78x/ 如果是默认的注解来执行内容则可能有其他问题 https://www.bilibili.com/video/BV1Gu4y1q7TY 但是可以通过注解指定使用哪个线程池 https://www.bilibili.com/video/BV1e44y1c7uE
http://www.hkea.cn/news/14464322/

相关文章:

  • 送菜网站制作大丰企业做网站多少钱
  • 江苏建设招标网站网站建设备案优化设
  • 网站建好后如何上线wordpress接入api
  • 嘉定网站设计制作托管维护高端网站建设网站
  • 怎么在自己电脑上搭建网站wordpress 如何重新安装
  • 微信公众号优惠和网站绑定怎么做网站建设公司客户开发手册
  • 益阳市网站建设网站建设中文摘要是什么
  • 建设银行官网官方网站婚纱网站html源码
  • 建站网站案例网站建设骗
  • 智慧景区网站服务建设口碑好的定制网站建设公司
  • 七台河新闻联播最新aso优化
  • 网站设计公司网站设计郑州seo优化顾问阿亮
  • 沈阳网站建设哪家便宜新竹自助网站
  • 广州三合一网站建设网站建设公司的小程序选择什么
  • 网站建设属于资产站长之家的作用
  • 备案后怎么建设网站全屋整装十大公认品牌加盟
  • 成品网站源码68w68游戏wordpress优秀中文主题
  • 做网站加模块网站建设江西
  • 做网站 知乎怎么创建网站平台赚钱
  • 陕西省建设监理协会证书查询网站拼团购物网站开发
  • 帮站seo湖南湘潭
  • 深圳html5网站开发建立网站需要多久
  • 项目网站建设应入哪个科目营销型网站策划公司
  • 镇江网站排名优化价格直播网站开发平台
  • 华为云速建站可以做英文网站网站制作有限公司
  • 安康网站建设技巧网页制作专业公司
  • 如何运营网站网络营销乐云seo
  • 建筑类招聘网站有哪些品牌设计包括哪些
  • 常见的简单的网站制作wordpress页面中添加小工具栏
  • 电子商务网站设计原理书籍注册域名之后怎么使用