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

手机端网站尺寸godaddy安装wordpress

手机端网站尺寸,godaddy安装wordpress,济南网站优化推广公司电话,wordpress 获取当前id目录 一、背景描述二、简单使用方法三、原理五、使用自定义线程池1、默认使用2、如何使用自定义线程池 六、Async失效情况1、同一个类中,一个方法调用 Async标注的方法 一、背景描述 java 的代码是同步顺序执行,当我们需要执行异步操作时我们通常会去创…

目录

    • 一、背景描述
    • 二、简单使用方法
    • 三、原理
    • 五、使用自定义线程池
      • 1、默认使用
      • 2、如何使用自定义线程池
    • 六、@Async失效情况
      • 1、同一个类中,一个方法调用 @Async标注的方法

一、背景描述

java 的代码是同步顺序执行,当我们需要执行异步操作时我们通常会去创建一个新线程去执行。比如new Thread()。start(),或者使用线程池线程池 new ThreadPoolExecutor().execute 。

在 Springboot 中对其进行了简化处理,使用@EnableAsync + @Async 可以快速开启一个异步线程执行任务

二、简单使用方法

启动类上使用 @EnableAsync ,开启异步任务支持

@EnableAsync
@SpringBootApplication
public class TaskMain {public static void main(String[] args) {SpringApplication.run(TaskMain.class,args);}
}

在需要异步执行的方法上添加注解 @Async

   @GetMapping("hello")public String hello(){asyncService.hello();System.out.println(new Date() + "success");return "ok";}@Asyncpublic void hello() {System.out.println(new Date() + "  " + Thread.currentThread().getName() + Thread.currentThread().getId());try {Thread.sleep(6000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(new Date() + "  " + Thread.currentThread().getName() + Thread.currentThread().getId() + "---->处理end");}

测试 Jemeter同时发送两个请求
在这里插入图片描述

三、原理

【看不太懂,之后再进行整理吧】

五、使用自定义线程池

1、默认使用

@Async默认使用的是 SimpleAsyncTaskExecutor , execute时,直接this.createThread(task) 也就是 new Tread来执行该任务
在这里插入图片描述

【缺点】SimpleAsyncTaskExecutor不限制并发线程且不重用线程,会为每个异步任务都创建有一个线程,在并发很高的情况下会导致程序内存耗尽

2、如何使用自定义线程池

1) 添加线程池配置,并将线程池注入到容器中

@Configuration
public class ThreadPoolConfig {@Bean("taskExecutor")public Executor taskExecutor() {ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();executor.setCorePoolSize(10);executor.setMaxPoolSize(20);executor.setQueueCapacity(200);executor.setKeepAliveSeconds(60);executor.setThreadNamePrefix("taskExecutor-");executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());return executor;}
}

2)使用@Async的时候,指定线程池

@Async("taskExecutor")public void hello() {System.out.println(new Date() + "  " + Thread.currentThread().getName() + Thread.currentThread().getId());try {Thread.sleep(6000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(new Date() + "  " + Thread.currentThread().getName() + Thread.currentThread().getId() + "---->处理end");}

在这里插入图片描述

六、@Async失效情况

1、同一个类中,一个方法调用 @Async标注的方法

@Service
public class AsyncDemoImpl implements AsyncDemo {// 注入spring上下文@Autowiredprivate ApplicationContext applicationContext;@Overridepublic void a() {System.out.println("开始执行a(): " + TimeUtil.getStringDate());// 通过上下文获取该类的实例,再调用该实例方法AsyncDemo asyncDemo = applicationContext.getBean(AsyncDemo.class);asyncDemo.b();System.out.println("执行结束a(): " + TimeUtil.getStringDate());}@Async@Overridepublic void b() {System.out.println("开始执行b(): " + TimeUtil.getStringDate());try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println("执行结束b(): " + TimeUtil.getStringDate());}
}
http://www.yayakq.cn/news/134685/

相关文章:

  • 深圳网站开发公司有哪些做解析视频网站违法莫
  • 常德网站优化哪家好企业网站一般做多宽
  • 学做电商的网站有哪些在360网站做公告怎么弄
  • 网站美工工作步骤是什么艺术类考生有哪些专业
  • 建设部网站水利造价师企业网站优化培训
  • cn域名后缀网站网站所属网络
  • 德阳北京网站建设手表网站欧米茄价格
  • 宜兴专业做网站公司深圳市网站首页
  • 网站建设suteng建立网站的
  • 作文网站排行榜前十名电子商务概念
  • 为企业建网站西宁网站建设的公司
  • 易科技 建设网站网络公司经营范围如何填写
  • 微网站功能怎么用dw第一次做网站
  • 双线主机可以做彩票网站吗云南放心seo整站优化
  • 织梦做的网站首页出现空白出行南宁app软件下载
  • 网站建设 新要求网站搭建需要多少钱?
  • 网站平台在线提交功能网站建设的市场规模
  • 青海建筑人才网济南正规企业站seo
  • 海外教育集团网站建设免费游戏链接入口
  • 信用网站建设成效游戏客户端开发
  • 手机网站建好怎么发布预登记网站开发 会议
  • 企业网站首页布局尺寸定制高端网站建设
  • 学生如何做网站深圳工商注册公司流程
  • 做网站php语言用什么工具主流网站设计软件
  • 2015做哪个网站致富esc服务器 wordpress
  • 提供温州手机网站制作哪家便宜pc网站建设建议
  • h5网站建设h爱情表白网站制作
  • 怎么样在百度搜到自己的网站wordpress支付下载
  • 南京专业网站建设英文网站建设的原因
  • 百度权重5的网站能卖多少钱discuz破解