我通过以下方式模拟了一场比赛:
// starts the timer + betting iterations
public void run() {
for (int i = 25; i >= 0; i--) {
try {
Thread.sleep(1000);
h.setTime(Integer.toString(i)); //h.setLblTime1(Integer.toString(i));
} catch (InterruptedException ex) {
Logger.getLogger(Timer.class.getName()).log(Level.SEVERE, null, ex);
}
}
Thread t0 = new Thread(new runHorses(h, 0));
Thread t1 = new Thread(new runHorses(h, 1));
Thread t2 = new Thread(new runHorses(h, 2));
Thread t3 = new Thread(new runHorses(h, 3));
t0.start();
t1.start();
t2.start();
t3.start();
Thread.currentThread().run();
}
我怎样才能以正确的方式做到这一点? (我需要每 25 秒开始一次自动下注轮迭代)
谢谢。
最佳答案
通常,当您使用线程时,您可以使用对其进行锁定的变量(使用同步关键字)。 否则,您可以使用 join() 方法:
public void run() {
// code
}
int main() {
Thread t0 = new Thread(new runHorses(h, 0));
Thread t1 = new Thread(new runHorses(h, 1));
Thread t2 = new Thread(new runHorses(h, 2));
Thread t3 = new Thread(new runHorses(h, 3));
t0.start();
t0.join();
t1.start();
t1.join();
t2.start();
t2.join();
t3.start();
t4.join();
}
关于java - 线程背后的逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9565133/