Executors执行器 newSingleThreadScheduledExecutor() 方法示例

x33g5p2x  于2022-10-06 转载在 其他  
字(1.5k)|赞(0)|评价(0)|浏览(1120)

在这篇文章中,我们将结合实例讨论Executors newSingleThreadScheduledExecutor()方法。

Executors.newSingleThreadScheduledExecutor()方法

这个方法创建了一个单线程的执行器,它可以安排命令在一个给定的延迟后运行,或者定期执行。(但是请注意,如果这个单线程在关机前的执行过程中由于故障而终止,如果需要执行后续的任务,一个新的线程将取代它的位置。) 任务被保证按顺序执行,并且在任何时候都不会有超过一个任务处于活动状态。与其他相等的newScheduledThreadPool(1)不同,返回的执行器被保证不能被重新配置以使用额外的线程。

语法

  1. ScheduledExecutorService scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();

Executors.newSingleThreadScheduledExecutor() 方法示例

  1. import java.util.Date;
  2. import java.util.concurrent.Executors;
  3. import java.util.concurrent.ScheduledExecutorService;
  4. import java.util.concurrent.TimeUnit;
  5. public class ExecutorsDemo {
  6. public static void main(String[] args) {
  7. ExecutorsDemo demo = new ExecutorsDemo();
  8. demo.newSingleThreadScheduledExecutor();
  9. }
  10. private void newSingleThreadScheduledExecutor() {
  11. System.out.println("Thread main started");
  12. ScheduledExecutorService scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
  13. // Create a task
  14. Runnable task1 = () -> {
  15. System.out.println("Executing the task1 at: " + new Date());
  16. };
  17. scheduledExecutorService.scheduleAtFixedRate(task1, 0, 2, TimeUnit.SECONDS);
  18. System.out.println("Thread main finished");
  19. }
  20. }

输出

  1. Thread main started
  2. Thread main finished
  3. Executing the task1 at: Mon Sep 10 13:15:57 IST 2018
  4. Executing the task1 at: Mon Sep 10 13:15:59 IST 2018
  5. Executing the task1 at: Mon Sep 10 13:16:01 IST 2018
  6. Executing the task1 at: Mon Sep 10 13:16:03 IST 2018
  7. Executing the task1 at: Mon Sep 10 13:16:05 IST 2018
  8. Executing the task1 at: Mon Sep 10 13:16:07 IST 2018
  9. ...............

相关文章