java - 为什么线程在main方法执行后才运行?

标签 java multithreading

public class TestThread {

    public static void main(String[] args) {

        System.out.println("Main Prgm Started...");
        Thread t1=new Thread(new Runnable() {

            @Override
            public void run() {

                System.out.println("Thread is running..");
            }
        });

        t1.start();

        System.out.println("Main Prgm Exited...");
    }
}

输出是:

Main Prgm Started...
Main Prgm Exited...
Thread is running..

最佳答案

当任何非守护进程线程运行时,Java 程序将继续运行。来自下面的链接:“守护线程是一个线程,当程序完成但线程仍在运行时,它不会阻止 JVM 退出。守护线程的一个例子是垃圾收集。您可以使用 setDaemon()更改线程守护程序属性的方法。” What is Daemon thread in Java?

默认情况下,所有创建的线程都是守护线程。您需要将其设置为非守护进程。

关于java - 为什么线程在main方法执行后才运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34758635/

相关文章:

c++ - 干净取消在输入/输出调用时阻塞的 std::thread

java - JVM 线程转储包含不锁定线程的监视器

未使用的方法的 java.lang.NoSuchMethodError

java - 我无法在 Android Studio 中 toast 消息

java - 同时通过不同的shell运行同一个java类

java - ArrayList vs HashMap——大量的迭代和对象操作

python - 我怎样才能让我的 Luigi 调度程序利用带有并行调度标志的多个内核?

c++ - condition_variable 项不计算为采用 0 个参数的函数

java - HSQLDB 神秘异常消息 : "feature not supported"

Java JList 不显示元素