0
点赞
收藏
分享

微信扫一扫

【jeecg-boot项目开发crm】:平台技术点——day05【Java定时任务解决方案:五、定时任务线程池】:图灵课堂


五、定时任务线程池

图例:

【jeecg-boot项目开发crm】:平台技术点——day05【Java定时任务解决方案:五、定时任务线程池】:图灵课堂_java

代码演示:

其中定义线程池和执行线程的主类:ScheduleThreadPoolTest,和线程实现类:Task

package com.tuling.pool;

import java.util.Date;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class ScheduleThreadPoolTest {

public static void main(String[] args) {
//定义一个线程池来执行线程,就避免了Timer的弊端
ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(5);
for (int i=0;i<2;i++){ //开两个线程任务
//调用schedule()方法,传参里有(线程任务,延迟时间,时间单位)
//调用scheduleAtFixedRate()方法,传参里有(线程任务,延迟时间,间隔时间,时间单位)
scheduledThreadPool.scheduleAtFixedRate(new Task("task-"+i),0,2, TimeUnit.SECONDS);
}
}
}
class Task implements Runnable{

private String name;

public Task(String name) {
this.name = name;
}

public void run() {
try {
System.out.println("name="+name+",startTime="+new Date());
Thread.sleep(3000);
System.out.println("name="+name+",endTime="+new Date());

//线程池执行
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

问题补充图:Leader-Follower模式

【jeecg-boot项目开发crm】:平台技术点——day05【Java定时任务解决方案:五、定时任务线程池】:图灵课堂_延迟时间_02


举报

相关推荐

0 条评论