gpt4 book ai didi

java - 为什么我的一些计时器根本不执行它们的任务?

转载 作者:行者123 更新时间:2023-11-29 09:19:23 25 4
gpt4 key购买 nike

我正在开发一个多任务项目。

首先,我设计了一些扩展 TimerTask 的类,并覆盖了 run() 方法。在 run() 方法中,将打印一行当前时间。

其次,像这样初始化一个Timer。

......
DataTask task1 = new DataTask();
myTaskList.add(task1);
DataTask task2 = new DataTask();
myTaskList.add(task2);
DataTask task3 = new DataTask();
myTaskList.add(task3);
DataTask task4 = new DataTask();
myTaskList.add(task4);

for(TimerTask task : myTaskList)
{
Timer timer = new Timer();
timer.schedule(task,1,60*1000);
}

......

public class DataTask extends TimerTask
{
@override
public void run()
{
System.out.println("print sth");
}

}

一个线程中的一个任务。是这样吗?

有时任务会工作,但是有时任务不会打印任何东西,没有任何异常,而线程仍然存在。

这可能是什么原因?

最佳答案

One task in one thread. Is that Right?

不,在幕后,Timer 使用单个线程来安排提交的任务,但在您的情况下,因为您使用的是多个计时器,是的,每个任务都将在单独的线程中执行。如果您需要通过使用多个线程来运行多个任务,请查看并发包中的执行器。查看 ExecutorService 的 Javadoc示例类。

关于java - 为什么我的一些计时器根本不执行它们的任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7397347/

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