gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 22:49:45 25 4
gpt4 key购买 nike

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

一些背景:我有一个程序必须运行一个进程。进程(一个 cmd one) 应该只在主程序执行完毕并从内存中卸载时运行。

我应该在主类中包含什么代码?

最佳答案

如果您的意思是:我如何启动一个不会在我的 JVM(java 程序)结束时结束的 Java 线程?

答案是:你不能那样做。

因为在 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。

然而,您可以从 java 启动不同的 JVM,为此您可能想查看这个问题: Launch JVM process from a Java application use Runtime.exec?

关于java - 如何在 Java 中运行与主线程分开的线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4005350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com