Java:同时管理多个进程

时间:2016-02-21 20:03:26

标签: java multithreading

所以我现在正在尝试创建一个应用程序,它允许我通过WebSocket连接到java应用程序来启动和停止不同的进程。 我有一个班级来管理每个流程,如

public class ServerProgram {
    Process p;

    public void Start() {
        this.p = new Process(...);
    }

    public void Stop() {
        this.p.destroy();
    }
}
  1. 如何同时管理多个实例,以便运行多个流程?
  2. 如何监控进程,启动服务器的线程能够知道进程何时崩溃?

2 个答案:

答案 0 :(得分:1)

  1. 如何同时管理多个实例,以便运行多个流程?

    当你在同一个程序/进程中同时做多件事时,你会使用线程。因此,每个ServerProgram实例都应该在一个单独的线程中运行。

    考虑使用ExecutorService而不是直接为每个进程构建线程。

  2. 如何监控进程,启动服务器的线程能够知道进程何时崩溃?

    这完全取决于您尝试监控的程序。您可以使用isAlive()查看它是否仍在投放,并阅读流程“stdoutstderr。除此之外,您的进程可以执行任何其他操作,例如写入日志文件或与Java进程通信,如果您将其配置为执行此操作。

答案 1 :(得分:-1)

我想你可能想要使用线程intead处理器。你的意思是处理器的java classe?在这种情况下,您可以存储处理器列表