为什么程序执行与预期不符

时间:2019-06-15 04:39:01

标签: java multithreading

尽管我首先调用了thread1的start()方法,但是线程2首先在输出上运行。为什么会这样呢? 输出: 线程二运行:0 线程二运行:1 线程一正在运行:0 线程二运行:2 ....

package interfacetest;

class thread1 extends Thread {

    public void run() {
        for(int i=0; i<10; i++) {
            System.out.println("Thread one running: " +i);
            }
    }
}
class thread2 extends Thread {

    public void run() {
        for(int j=0; j<10; j ++) {
            System.out.println("Thread two running: " +j);
            }
    }
 }

class InterfaceTest {


public static void main(String[] args) {

    thread1 t1 = new thread1();
    thread2 t2=  new thread2();
    t1.start();
    t2.start(); 
   }
}

1 个答案:

答案 0 :(得分:0)

当我们启动线程时,java在单独的线程中开始执行run方法。而且永远不会保证线程排序。在这里,您只是在启动2个不同的线程,而没有保证将按顺序执行它们。