在这篇文章中,我们将结合实例讨论Executors newSingleThreadScheduledExecutor()方法。
这个方法创建了一个单线程的执行器,它可以安排命令在一个给定的延迟后运行,或者定期执行。(但是请注意,如果这个单线程在关机前的执行过程中由于故障而终止,如果需要执行后续的任务,一个新的线程将取代它的位置。) 任务被保证按顺序执行,并且在任何时候都不会有超过一个任务处于活动状态。与其他相等的newScheduledThreadPool(1)不同,返回的执行器被保证不能被重新配置以使用额外的线程。
语法
ScheduledExecutorService scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
import java.util.Date;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class ExecutorsDemo {
public static void main(String[] args) {
ExecutorsDemo demo = new ExecutorsDemo();
demo.newSingleThreadScheduledExecutor();
}
private void newSingleThreadScheduledExecutor() {
System.out.println("Thread main started");
ScheduledExecutorService scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
// Create a task
Runnable task1 = () -> {
System.out.println("Executing the task1 at: " + new Date());
};
scheduledExecutorService.scheduleAtFixedRate(task1, 0, 2, TimeUnit.SECONDS);
System.out.println("Thread main finished");
}
}
输出
Thread main started
Thread main finished
Executing the task1 at: Mon Sep 10 13:15:57 IST 2018
Executing the task1 at: Mon Sep 10 13:15:59 IST 2018
Executing the task1 at: Mon Sep 10 13:16:01 IST 2018
Executing the task1 at: Mon Sep 10 13:16:03 IST 2018
Executing the task1 at: Mon Sep 10 13:16:05 IST 2018
Executing the task1 at: Mon Sep 10 13:16:07 IST 2018
...............
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://www.javaguides.net/2018/09/executors-newsinglethreadscheduledexecutor-method-example.html
内容来源于网络,如有侵权,请联系作者删除!