java - 哪个先运行 : new thread or main thread?

标签 java scheduler

我运行了这段代码并得到了这个结果:

//back in main
//directly from the runnable
//top of the stack

我不应该得到栈顶作为我的第一个结果吗?

public class MyRunnable implements Runnable {
    public void run() {
        System.out.println("directly from the runnable");
        go();
    }
    public void go() {
        doMore();
    }
    public void doMore() {
        System.out.println("top of the stack");
    }
}

public class ThreadTester{

    public static void main(String[] args) {
        Runnable threadJob = new MyRunnable();
        Thread myThread = new Thread(threadJob);

        myThread.start();

        System.out.println("back in main");
    }

}

最佳答案

线程没有特定的顺序,可以是任意一种。 JVM 是决定这一点的人,它每次都会给出不同的结果。

关于java - 哪个先运行 : new thread or main thread?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24472154/

相关文章:

java - OpenShift 返回带有标题 text/plain 而不是 text/html 的响应

java - 更改和改进了从 Web Servlet 到 Web 服务的数据传递

java - 如何在android中的java文件中设置新添加的radioButton的Id?

java - Netty的WebSocket消息是否被压缩?

java - 安卓 : sms receiver is not working

C++常见的std::make_unique、std::packaged_task和std::promise问题

cron - 任务调度程序如何解雇工作?

c# - windows调度器调度后如何获取安装的exe文件系统路径?

Python如何准确安排一次性任务

c# - 如何在 C# 中使用 TaskScheduler 设置 "run only if logged in"和 "run as"?