java - 线程背后的逻辑

标签 java

我通过以下方式模拟了一场比赛:

// 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/

相关文章:

Jhipster 上的 java.lang.NoSuchMethodError

java - SpringRunner 与 SpringBootTest

java - 如何在 JPA 2.0 元模型中自动生成列名作为静态最终字符串?

java - 将重复的 if-else 语句修改为更清晰的代码

java - 无法在 Eclipse Photon 上安装 Spring Tools 4 (Spring Tool Suite 4) - 不兼容

java - 尝试解析 xml 文件但在部署的 GAE 中出现 java.security.AccessControlException

java - 如果可以选择向现有系统添加单元测试或集成测试,从哪个开始更好,为什么?

java - 如何在 JEE 服务器 (Wildfly) 中的 JMS 临时队列上创建监听器?

java - 如何使用修改数据字段的方法返回新对象,而不弄乱用于调用该方法的对象的数据字段

java - 使用递归时二进制搜索树遍历无法执行