Java Thread随机输出

Mit*_*tri -2 java multithreading threadpool

public class Rough {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        TestThread1 testThread1 = new TestThread1();
        TestThread2 testThread2 = new TestThread2();
        testThread1.start();
        testThread2.start();
        // testThread1.stop();
        System.out.println(testThread1.getName());
        System.out.println(testThread2.getName());
    }

}

class TestThread1 extends Thread {

    public void run() {
        System.out
                .println("MyThread1 running :: " + System.currentTimeMillis());
    }
}

class TestThread2 extends Thread {

    public void run() {
        System.out
                .println("MyThread2 running :: " + System.currentTimeMillis());
    }
}
Run Code Online (Sandbox Code Playgroud)

它每次执行时都会给出随机输出.

Thread-0
Thread-1
MyThread1 running :: 1398752090142
MyThread2 running :: 1398752090142
Run Code Online (Sandbox Code Playgroud)

下次

MyThread1 running :: 1398752090142
Thread-0
Thread-1
MyThread2 running :: 1398752090142
Run Code Online (Sandbox Code Playgroud)

下次

Thread-0
MyThread1 running :: 1398752090142
Thread-1
MyThread2 running :: 1398752090142
Run Code Online (Sandbox Code Playgroud)

谁能解释为什么会这样呢?

谢谢.

Jun*_*san 7

它仅依赖于JVM线程调度程序来调度线程.当你有多个线程时,它可以按任何顺序执行.因此你看到不同的输出.