gpt4 book ai didi

java - TimerTask与Executors.newScheduledThreadPool的区别(一)

转载 作者:搜寻专家 更新时间:2023-10-30 20:55:26 25 4
gpt4 key购买 nike

我需要安排一些工作在未来完成。我可以通过两种方式做到这一点:

  1. 创建一个TimerTask并执行timer.schedule(...);

  2. 使用 Executors.newScheduledThreadPool(1):

    ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
    ScheduledFuture <?> scheduleHandle = scheduler.schedule(pushExternalRunnable,
    runScheduleDate.getTime() - now.getTime(), TimeUnit.MILLISECONDS);

这两种安排 future 工作的方式有什么区别?

最佳答案

最大的区别是 Timer 将在单个后台线程上安排它的所有任务。另一方面,ExecutorService 将创建新线程(如有必要)来运行任务(达到您指定的池的大小,此时任务将排队。)

关于java - TimerTask与Executors.newScheduledThreadPool的区别(一),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6111645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com