分享更有价值
被信任是一种快乐

Springboot自带线程池怎么实现

文章页正文上

本篇文章和大家了解一下Springboot自带线程池怎么实现。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。1 ThreadPoolTaskExecutor线程池:ThreadPoolTaskExecutor是Spring基于java本身的线程池ThreadPoolExecutor做的二次封装,主要目的还是为了更加方便的在spring框架体系中使用线程池, 是Spring中默认的线程池2 使用ThreadPoolTaskExecutor注入bean到io免费云主机、域名c中
配置文件形式,Spring会自动配置配置形式:3 创建线程后全部从ioc中获取线程池子4 线程池处理流程:(1) 查看核心线程池是否已满,不满就创建一条线程执行任务,核心线程数量已满就查看任务队列是否已满不满就将线程存储在任务队列中任务队列已满,就查看最大线程数量,不满就创建线程执行任务,已满就按照拒绝策略执行(2) 拒绝策略:CallerRunsPolicy():原来的线程执行AbortPolicy():直接抛出异常DiscardPolicy():直接丢弃DiscardOldestPolicy():丢弃队列中最老的任1 ThreadPoolTaskScheduler 定时调度任务线程池,处理异步任务2 使用方式: 注入 ThreadPoolTaskScheduler的bean(1) 配置文件形式:..
(2) 配置类形式:3 使用ThreadPoolTaskScheduler定时任务做普通线程池使用:submit(callable),需要执行结果submit(runnable),不需要执行结果(1) 定时任务添加任务内容Runnable,设置执行周期Trigger/Date,Trigger表达式百度即可(2) 指定间隔时间执行一次任务,时间间隔是前一次任务完成到下一次任务开始,单位毫秒(3) 固定频率执行任务,在任务开始后间隔一段时间执行新的任务,如果上次任务么执行完成,则等待上次任务执行完成后执行下次任务(4) 定时任务取消:设置定时任务存储的集合,定时任务执行的结果为ScheduledFuture>,将该对象存储到集合,通过在集合中获取ScheduledFuture>对象.cancel(true)取消定时任务1 使用@EnableScheduled开启支持2 @Scheduled标注方法(1)@Scheduled(fixedDelay=5000)延迟执行,5s后执行
(2)@Scheduled(fixedRate=5000)定时执行,每隔五秒就进行执行
(3)@Scheduled(corn=”002**?”) 自定义执行,corn表达式百度,常用这种执行方式,corn=”002**?”每天凌晨两点开始执行定时任务3 注意@Scheduled开启的任务是单线程的,容易阻塞(1) 在ioc中注入ThreadPoolTaskScheduler,则Scheduled就使用ThreadPoolTaskScheduler线程池,可以解决单线程阻塞问题
(2) @Scheduled和@Async注解开启定时任务,在@Async(“pool”)中指定线程池,若是没有指定线程池会使用Spring的SimpleAsyncTaskExecutor线程池,这个线程池每次都会增加一个线程去执行任务,效率低下1 @EnableAsync开启异步支持
2 @Async开启异步任务,指定线程池注意:@Scheduled和@Async注解开启定时任务,在@Async(“pool”)中指定线程池,若是没有指定线程池会使用Spring的SimpleAsyncTaskExecutor线程池,这个线程池每次都会增加一个线程去执行任务,效率低下但是@Async单独开启异步任务,则使用的是默认的线程池,建议根据需求自定义线程池注意:@Async的返回值只能为void或Future, 调用方和@Async不能在一个类中,否则不走aop;java自带的线程池,缓存,固定数量的,单线程的,定时的,,,,六七种,后面续上以上就是Springboot自带线程池怎么实现的简略介绍,当然详细使用上面的不同还得要大家自己使用过才领会。如果想了解更多,欢迎关注云技术行业资讯频道哦!

相关推荐: node esmodule模式下如何调用commonjs模块

本文小编为大家详细介绍“node esmodule模式下如何调用commonjs模块”,内容详细,步骤清晰,细节处理妥当,希望这篇“node esmodule模式下如何调用commonjs模块”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册