定时调度的线程池

定时调度线程池

当我们需要定时进行线程的调度

@Slf4j
public class Test5 {
    public static void main(String[] args) {
        Timer timer = new Timer();
        log.debug("开始了");
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                log.debug("hello");
                try {
                    Thread.sleep(2000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        },1000);
    }
}

这样线程不是异步执行的,相当于一个线程执行两个任务,而不是两个线程同时执行,不好。

定时调度的线程池,对于API不过多赘述,感觉这种还得看源码学场景,而且基本上线程池都是自己定义不使用JDK自带的。他这个就是阻塞队列是无限大的,当请求太多了就会出现OOM。

@Slf4j
public class Test6 {

    public static void main(String[] args) {
        ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(2);
        log.debug("开始");
        scheduledExecutorService.schedule(()->{
            log.debug("进行调度咯");
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        },1, TimeUnit.SECONDS);
        scheduledExecutorService.scheduleAtFixedRate(()->{
            log.debug("鸡汤来喽");
        },1,1,TimeUnit.SECONDS);
    }

}

对于处理线程池中的线程异常,对于以下情况

scheduledExecutorService.schedule(()->{
    log.debug("进行调度咯");
    int i = 1 / 0;   // 出现错误,但是运行时却不会抛出异常。
    try {
        Thread.sleep(2000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
},1, TimeUnit.SECONDS);

在线程池中的线程出现错误,但是并不会在控制台打印异常。

解决方法

  • 在线程中进行try catch处理异常打印出来
  • 使用Callable接口,对于返回的Future

Original: https://www.cnblogs.com/duizhangz/p/16260032.html
Author: 大队长11
Title: 定时调度的线程池

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/599423/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 【黄啊码】教你用python画冰墩墩

    python;gutter:true; import turtle</p> <p>turtle.title('PythonBingDwenDwen…

    数据库 2023年6月16日
    061
  • HA: FORENSICS靶机练习

    ubuntu拿到手,没有恢复模式,不好绕密码,仿真软件又会更改所有用户的密码,怕影响后续操作,先不采用,先试试用john跑一下看看能不能跑出一两个来。 刚好跑出来一个,用户 &lt…

    数据库 2023年6月11日
    092
  • Docker Maven构建缓存spring boot依赖包

    背景 每次通过 docker build ‘xxx’ 的时候,总是会去maven镜像下载一大堆Jar包,平均每次build都要在3分钟左右,效率非常低下,于…

    数据库 2023年6月6日
    099
  • 使用Typora + 阿里云OSS + PicGo 打造个人图床

    使用Typora + 阿里云OSS + PicGo 打造个人图床 为什么要打造图床? 让笔记远走高飞 试问以下场景: 我们要 markdown 笔记放到某博客上,直接进行复制即可。…

    数据库 2023年6月9日
    098
  • Spark学习(3) SparkSQL

    什么事sparkSQL Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用, 它是将Spark…

    数据库 2023年6月16日
    089
  • ubuntu设置时区

    posted @2022-06-21 08:30 一份人间烟火 阅读(2 ) 评论() 编辑 Original: https://www.cnblogs.com/zcxxcvbn/…

    数据库 2023年6月9日
    093
  • MySQL慢查询优化问题-解决办法

    根据发现的问题,找出原因,然后对症下药。 [En] According to the problems found, find the cause, and then prescr…

    数据库 2023年5月24日
    097
  • jspdf.js+html2canvas将HTMl导出PDF

    jspdf.js+html2canvas将HTMl导出PDF 功能: PDF分页插入页头页尾 输出A4格式PDF 支持单页、多页输出 效果预览:查看演示PDFdemo地址:demo…

    数据库 2023年6月11日
    0109
  • 计算机组成原理——计算篇

    计算机组成原理 —— 计算篇 进制运算的基础 定义: 常用的进制 为什么计算机经常使用 8 进制 &16 进制 1024 不同进制表达方式 二进制运算的基础 正整数N,基数…

    数据库 2023年6月16日
    078
  • 详解apollo的设计与使用

    apollo 是一款由携程团队开发的配置中心,可以实现配置的集中管理、分环境管理、即时生效等等。在这篇博客中,我们可以了解到: 这里我回答的是为什么使用配置中心,而不是为什么使用 …

    数据库 2023年6月6日
    0102
  • 2022春秋杯春季赛勇者山峰-misc

    这几天搞完取证就开始弄这些个东西,属实把我整麻了,临场我就整不出来,可能是功利心太重了 ,一着急就啥也不会,毕竟这misc只是用来辅助锻炼我的取证的。。 tiger 1.These…

    数据库 2023年6月11日
    0101
  • MySQL的FIND_IN_SET函数

    语法:FIND_IN_SET(str,strlist) https://www.cnblogs.com/xiaoxi/p/5889486.html Original: https:…

    数据库 2023年6月16日
    056
  • 2022-8-16 mysql 第二天 约束

    重点,DQL是我们每天都要接触编写最多也是最难的SQL,该语言用来查询记录,不会修改数据库和表结构。 构建数据库 创建一张student表: DROP TABLE IF EXIST…

    数据库 2023年5月24日
    071
  • Variable used in lambda expression should be final or effectively final

    java的lambda表达式里不能出现变量,必须是final修饰的,但是可以让变量在定义时候计算【新函数】出结果,这样就不算变量了。可以使用lambda表达式,不再报错。例如 bo…

    数据库 2023年6月9日
    095
  • SQL基础一

    一、SQL基本术语 数据库管理系统(DBMS,database management system)。人们通常用数据库这个术语来代表他们使用的数据库软件,这是不正确的。确切地说,数…

    数据库 2023年6月16日
    079
  • 笔记-docker学习-2

    继续之前的docker学习 16、 docker commit从容器创建一个新的镜像 OPTIONS说明: -a :提交的镜像作者; -c :使用Dockerfile指令来创建镜像…

    数据库 2023年6月9日
    076
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球