私はマルチタイマータスクプロジェクトを開発しています。
まず、TimerTaskを拡張したいくつかのクラスを設計し、run()メソッドをオーバーライドします。run()メソッドでは、1行に現在の時刻が出力されます。
次に、タイマーはこのように初期化されます。
......
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");
}
}
1つのスレッドで1つのタスク。そうですか?
タスクが機能する場合もありますが、スレッドがまだ生きている間、タスクは例外なしに何も出力しない場合があります。
これの理由は何でしょうか?