gpt4 book ai didi

带有 (C++) 子进程/线程或类似的 Java 进程

转载 作者:行者123 更新时间:2023-11-27 23:46:44 26 4
gpt4 key购买 nike

我今天的问题是:我需要从 Java 启动一个程序(这是一个 C++ 程序)。当Java程序停止时,C++程序也需要停止,反之亦然。

我的想法:我需要在新线程中运行该程序。当线程停止时,我可以退出 java 程序。如果 Java 程序停止,线程将被杀死。

我需要在 Java 进程的新子进程中运行该程序。并在 Java 进程中接收信号以检查子进程是否死亡。

有谁知道我如何获得这种行为?

最佳答案

你可以在主线程中添加一个关闭钩子(Hook),在这个钩子(Hook)中你可以杀死应用程序,或者发送一个退出信号。

Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
// kill the application here!!!
killCProgram();
}
});

在上面的代码中,java 应用程序将等待killCProgram

事实上,如果是两个进程,它们是独立的。

关于带有 (C++) 子进程/线程或类似的 Java 进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49946455/

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