我第一次在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);
}
}
}
答案 0 :(得分:0)
要执行线程,您需要使用start()
方法。当你调用run()
时,它只是调用它的同一个线程上的标准方法调用。
您还应该尝试在最后的线程上调用join()
。
答案 1 :(得分:0)
Runnable不是线程。你需要
Thread t = new Thread(loop1);
t.start();