【问题标题】:Java Process with (C++) childprocess/thread or similar带有 (C++) 子进程/线程或类似的 Java 进程
【发布时间】:2018-04-20 16:55:17
【问题描述】:

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

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

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

有谁知道我怎样才能得到这种行为?

【问题讨论】:

  • 其他程序是用C++编译的有关系吗?

标签: java c++ multithreading process signals


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2022-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 2019-09-26
    相关资源
    最近更新 更多