Java Show Threads同时工作

时间:2018-06-17 19:49:13

标签: java multithreading

我第一次在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);
    }
}
}

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

Runnable不是线程。你需要

Thread t = new Thread(loop1);
t.start();