У меня проблема с таймером в java. Когда я запускаю приведенный ниже код, a.start (0), a.start (1) и a.start (2) печатаются одновременно, а вывод похож на 02121010120010122012102 , но я хочу, чтобы его печатали в порядке, таком как 00000001111111222222222Почему команды таймера работают одновременно в java
Как это сделать?
public class Main {
public static void main(String[] args) {
A a = new A();
a.start(0);
a.start(1);
a.start(2);
}
public class A {
public void start(int x)
{
Timer myTimer=new Timer();
TimerTask task=new TimerTask() {
int counter=0;
@Override
public void run() {
System.out.print(x);
counter++;
if(counter>=10)
myTimer.cancel();
}
};
myTimer.schedule(task,0,300);
}
}
И почему вы думаете, что эти таймеры должны ждать друг друга? – Tom
Все три таймера запланированы одновременно. Это означает, что они должны бежать, как они делают для вас. – Slimu