一尘不染

如何在Java中与主线程分开运行线程?

java

目的是能够从 主类中* 调用 单独线程的 执行。 *

一些上下文:我有一个必须运行 进程的程序 。仅当主程序执行完毕并从内存中卸载时,该进程 (一个cmd程序)才 应运行。

我应该在 主类中 包括哪些代码?


阅读 223

收藏
2020-12-03

共1个答案

一尘不染

如果您的意思是: 如何启动一个Java线程,当我的JVM(Java程序)运行时,该线程不会结束?

The answer is: you can't do that.

因为在Java中,如果JVM退出,则所有线程均已完成。这是一个例子:

class MyRunnable implements Runnable { 
   public void run() { 
       while ( true ) { 
           doThisVeryImportantThing(); 
       } 
   } 
}

可以通过以下代码从您的主线程启动以上程序:

MyRunnable myRunnable = new MyRunnable(); 
Thread myThread = new Thread(myRunnable);
myThread.start();

该示例程序将永远不会停止,除非其中的某些内容doThisVeryImportantThing将终止该线程。您可以将其作为守护程序运行,如以下示例所示:

MyRunnable myRunnable = new MyRunnable(); 
Thread myThread = new Thread(myRunnable);
myThread.setDaemon(true); // important, otherwise JVM does not exit at end of main()
myThread.start();

这将确保,如果main()线程结束,它将也终止myThread。

2020-12-03