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

带你做网站毕设重庆公司名称网上核名

带你做网站毕设,重庆公司名称网上核名,微信管理系统官网,公司设计网站详情文章目录 ScheduledThreadPoolExecutortimer(不建议用)ScheduledThreadPoolExecutor处理异常应用 ScheduledThreadPoolExecutor timer(不建议用) timer也可以进行延迟运行,但是会有很多问题。 比如task1运行时间超过…

文章目录

  • ScheduledThreadPoolExecutor
    • timer(不建议用)
    • ScheduledThreadPoolExecutor
    • 处理异常
    • 应用

ScheduledThreadPoolExecutor

timer(不建议用)

timer也可以进行延迟运行,但是会有很多问题。

比如task1运行时间超过task2延迟时间。

@Slf4j(topic = "c.Main")
public class Main {public static void main(String[] args) {Timer timer = new Timer();TimerTask task1 = new TimerTask() {@Overridepublic void run() {log.debug("task 1");try {sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}}};TimerTask task2 = new TimerTask() {@Overridepublic void run() {log.debug("task 2");}};log.debug("start...");timer.schedule(task1, 1000);timer.schedule(task2, 1000);}
}

在这里插入图片描述

当task1出异常,task2不会运行。

ScheduledThreadPoolExecutor

Executors就可以创建。

延迟执行:

@Slf4j(topic = "c.Main")
public class Main {public static void main(String[] args) {ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(1);scheduledExecutorService.schedule(() -> {log.debug("task1");int i = 1 / 0; // 模拟异常}, 1, TimeUnit.SECONDS);scheduledExecutorService.schedule(() -> {log.debug("task2");}, 1, TimeUnit.SECONDS);}
}

在这里插入图片描述

可以看出通过控制线程数可以解决timer的缺点。
同时出现异常也不会影响其他任务运行。

定时运行:

@Slf4j(topic = "c.Main")
public class Main {public static void main(String[] args) {ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(1);log.debug("start...");scheduledExecutorService.scheduleAtFixedRate(() -> {log.debug("running...");}, 1, 1, TimeUnit.SECONDS); // 每隔1s反复执行}
}

在这里插入图片描述

处理异常

try catch

ExecutorService pool = Executors.newFixedThreadPool(1);
pool.submit(() -> {try {log.debug("task1");int i = 1 / 0;} catch (Exception e) {log.error("error:", e);}
});

通过返回值判断

ExecutorService pool = Executors.newFixedThreadPool(1);Future<Boolean> f = pool.submit(() -> {log.debug("task1");int i = 1 / 0; // 模拟异常return true;
});
log.debug("result:{}", f.get());

若正常执行返回true,
若出现异常get会返回异常信息。
在这里插入图片描述

应用

每周四定时运行

public class Main {public static void main(String[] args) throws ExecutionException, InterruptedException {// 获得当前时间LocalDateTime now = LocalDateTime.now();// 获取本周四 18点时间LocalDateTime startTime =now.with(DayOfWeek.THURSDAY).withHour(18).withMinute(0).withSecond(0).withNano(0);// 如果当前时间已经超过 本周四 那么找下周四if(now.compareTo(startTime) >= 0) {startTime = startTime.plusWeeks(1);}// 计算时间差,延时执行时间long initialDelay = Duration.between(now, startTime).toMillis();// 执行间隔 1周long period = 1000 * 60 * 60 * 24 * 7;ScheduledExecutorService executor = Executors.newScheduledThreadPool(2);executor.scheduleAtFixedRate(() -> {System.out.println("running..");}, initialDelay, period, TimeUnit.MILLISECONDS);}
}
http://www.yayakq.cn/news/284590/

相关文章:

  • 北京建设厅网站建电影网站
  • 国外公司在国内建网站西安网站建设公司 云阔
  • 赤壁网站建设wordpress文件存储在阿里云oss
  • 建立网站需要什么设备搜狗识图
  • 推荐自助建网站平台多少钱一盒
  • 教育类网站前置审批wordpress视频 小程序
  • 北京网站托管的公司哪家好阿里云怎么做淘客网站
  • 商户如何做h5商城网站是什么黄埔做网站
  • 分红网站建设网站服务器崩了怎么办
  • 做汽车介绍视频的网站吗wordpress的mvc
  • 电商网站 网站服务内容网络营销的基本职能
  • 有域名如何做免费网站公司网站域名怎么续费
  • 网站建设合同包含什么网站开发毕业设计
  • 自己做效果图的网站网站导航条代码
  • 在县城怎么做网站公司一般网站用什么数据库
  • 申报教学成果奖网站建设网络建设方案论文
  • 新网站如何做seo网站a记录吗
  • php 网站源代码网站开发文档总结
  • 网站建设的技术支持包括天猫代运营电商公司排行榜
  • 营销型网站建设设计怎么在百度上发布自己的信息
  • 苏州网站建设制作公司小程序开发校园网站开发的需求分析
  • 辅助购卡网站怎么做青岛企业建站系统
  • 织梦网站备份抖音小程序开发工具
  • 网站开发需要几个专业百度小说官网
  • 周口seo 网站织梦物流公司网站模板简洁大气
  • thinkphp做双语网站广告策划方案范文
  • 天津制作企业网站的外贸综合服务网站建设
  • 网站 文件验证淘宝做短视频网站
  • 优秀的网站有哪些内容wordpress 音乐格式
  • 建设银行信用卡管理中心网站首页上海网站开发设计公司