首页 > 解决方案 > Java 显示线程同时工作

问题描述

我第一次在 Java 中使用线程,我只是想说服自己他们做我认为他们正在做的事情。

我希望以下代码同时运行两个循环,因此我希望输出是计数器的混合。但是,每次我运行代码时,我都会得到从 1 到 3000 的直接计数,所有数字都按顺序排列。

我错过了什么吗?有没有更好的方法来演示两个线程实际上同时工作?

public class ThreadDemo {

public static void main(String[] args) {
    Loop1 loop1 = new Loop1();
    Loop2 loop2 = new Loop2();

    loop1.run();
    loop2.run();
}


public static class Loop1 implements Runnable {
@Override
public void run() {
    for(int i= 1; i <= 1000; i++){
        System.out.println(i);
    }
}


public static class Loop2 implements Runnable {
@Override
public void run() {
    for(int i= 2000; i <= 3000; i++){
        System.out.println(i);
    }
}
}

标签: javamultithreading

解决方案


要执行一个线程,您需要使用该start()方法。当您调用run()它时,它只是在调用它的同一线程上的标准方法调用。

您还应该尝试在join()最后调用您的线程。


推荐阅读