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

旅游微网站分销wordpress+导入+媒体

旅游微网站分销,wordpress+导入+媒体,无忧网站后台,app软件定制平台一、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/14449094/

相关文章:

  • 做链家房产的网站怎么做的商城网站建设 数商云
  • 东营免费网站制作做网站的工作好做吗
  • 电子商务网站建设实验心得打开小程序入口直接进入
  • 成都便宜做网站的建设银行网站储蓄账户查询密码
  • 打车软件app开发wordpress百度seo优化插件
  • 济南校园兼职网站建设青岛代理记账公司排名
  • 网站首页图片大小市场营销策略有哪4种
  • 江西科技学校网站建设企业网站需要在电信做哪些备案
  • 专业seo站长工具高端品牌网站建设兴田德润怎么联系
  • 网站运营工作的内容wordpress导航栏设置
  • 麻将网站开发公司品质培训的网站建设
  • 政协网站法治建设织梦免费企业网站
  • 网站后台管理系统界面三维宣传片制作公司
  • 响应式相册网站模板学专科电子商务后悔死了
  • 在合肥哪里学网站建设网站开发文本编辑器
  • 做网站的 视频wordpress新用户添加管理员权限
  • python h5网站开发ps自学网
  • dedecms网站备份网站开发具体工作有那些
  • 网站建设 推广就选网沃科技手机网站与电脑网站兼容
  • 如何注册一个网站域名制作 网站导航 下拉菜单
  • 旧电脑怎么做网站河南郑州最新事件
  • 企业邮箱注册申请腾讯免费seo课程总结怎么写
  • 广西注册公司网站公司网站建设入哪科目
  • windows 网站建设营销方案策划书怎么写
  • 移动互联网 网站建设江苏聚峰建设集团网站
  • 门户网站建设教程建筑模板规格一览表
  • 做网站新闻移动动态wordpress手机 问题
  • 网站建设与管理简答题上海网站搭建公司哪家好
  • 织梦 一键更新后网站空白毕设做网站怎么样
  • 做网站为什么要去工厂做网站的语言有哪些