Discuss / Java / 有个知识点 t.start()执行以后 t线程并不一定马上执行,仍然是要看cpu的调度

有个知识点 t.start()执行以后 t线程并不一定马上执行,仍然是要看cpu的调度

Topic source
public class Main {
    public static void main(String[] args) throws InterruptedException {
        Thread t = new Thread(() -> {
            System.out.println("hello");
        });
        t.start();//把这行代码放到了下面这行代码前面
        System.out.println("start");
        t.join();
        System.out.println("end");
    }
}
反复执行结果如下:
start
hello
end
说明了t.start()执行以后,首先执行的仍然是 main线程,再是t线程,最后再切换到main线程

langxc

#2 Created at ... [Delete] [Delete and Lock User]

t.start()之后,main线程和t线程的执行顺序应该不是固定的

保持热爱

#3 Created at ... [Delete] [Delete and Lock User]

#2 正解,main和t顺序不是固定的,调度由操作系统决定


  • 1

Reply