用途: ScheduledThreadPoolExecutor(计划任务线程池)主要用于执行一些需要延时操作或者需要重复操作的任务, Spring框架自带计划任务功能 场景一: 延时操作, 提供给客户统计数据功能, 如果高峰执行肯定影响系统运行效率,那么规定只有下午四点以后才能执行统计, 那么就需要 ...
分类:
编程语言 时间:
2020-01-13 16:07:11
阅读次数:
81
第一种:使用Executors.newScheduledThreadPool实现定时任务 这种实现方式是阿里规范不推荐的使用方式,有资源耗尽的风险 第二种:使用ScheduledThreadPoolExecutor实现定时任务 推荐的方式 第三种:SpringBoot中定时任务的创建方式 方式一:使 ...
分类:
其他好文 时间:
2020-01-13 14:30:31
阅读次数:
75
问题描述: 运行结果:可见多线程运行是没有顺序的 方法1:join 解释:join源码中执行的是Object类中的wait方法。原理是让主线程处于wait,知道子线程执行结束才继续执行主线程。 方法2:利用单线程池Executors.newSingleThreadExecutor() ...
分类:
编程语言 时间:
2020-01-03 00:10:22
阅读次数:
90
工作中用过线程池来进行多线程的操作,但是也仅仅是停留在使用方面,没有深入研究,现在通过源码来仔细研究下java的线程池。关于线程池的优缺点就不研究了,直接通过一个源码来看看java中线程池的原理。 使用ThreadPoolExecutor来创建一个线程池 public class MultipleT ...
分类:
编程语言 时间:
2019-12-28 13:24:37
阅读次数:
86
rancher+gitlab+appveyor 实现 CI/CD 流水线 本文主要是做一些汇总,将近期接触并弄好的一些工具整合起来,弄一套流水线,减轻一定工作压力 工具介绍 所有的组件都是使用 docker 跑的,所以一款好用的 docker 的 ui 管理工具很重要,那就是 "rancher" 。 ...
分类:
移动开发 时间:
2019-12-25 15:43:41
阅读次数:
269
如果用nohup启动jar包的话,默认的日志文件就是nohup.out,那么如果启动多个jar包的话,看日志文件就麻烦了,因为他们都会写入到nohup.out文件中。 所以我们来指定一下不同jar包的日志文件名: 看一眼,日志确实写入到dianyixia.log文件中了: 如法炮制,再来一个: 看看 ...
分类:
编程语言 时间:
2019-12-23 13:39:59
阅读次数:
183
/*** JDK提供了ExecutorService实现了线程池功能:* 线程池内部维护一组线程,可以高效执行大量小任务;* Executors提供了静态方法创建不同类型的ExecutorService;* 必须调用shutdown()关闭ExecutorService;* ScheduledThr ...
分类:
编程语言 时间:
2019-12-20 15:14:08
阅读次数:
115
Executors:JDK给提供的线程工具类,静态方法构建线程池服务ExecutorService,也就是ThreadPoolExecutor,使用默认线程池配置参数。 建议:对于大用户,高并发,不易掌控的项目,不建议使用Executors来创建线程池对象。 对于易于掌控且并发数不高的项目,可以考虑 ...
分类:
编程语言 时间:
2019-12-16 19:11:53
阅读次数:
80
DelayQueue简介 在很多场景我们需要用到延时任务,比如给客户异步转账操作超时后发通知告知用户,还有客户下单后多长时间内没支付则取消订单等等,这些都可以使用延时任务来实现。 jdk中DelayQueue可以实现上述需求,顾名思义DelayQueue就是延时队列。 DelayQueue提供了在指 ...
分类:
编程语言 时间:
2019-12-12 13:09:12
阅读次数:
167
定义任务ScheduledExecutorServicescheduledExecutorService=Executors.newScheduledThreadPool(50);scheduledExecutorService.schedule(newDoorGuardDelUserThreadPool(vd,companyDao,preRegistrationDataDao,doorGuard
分类:
编程语言 时间:
2019-12-10 00:55:32
阅读次数:
174