프로세스의 인스턴스를 두 개 만들어야하며 둘 중 하나가 종료 될 때 다른 프로세스가 종료되어야하는 할당이 있습니다. 생성 된 첫 번째 프로세스를 닫을 때만이 작업을 수행 할 수 있습니다. 즉, 두 프로세스가 같은 자식인데도 생성 된 프로세스에 일종의 계층 구조가 있음을 의미합니까?동시에 두 프로세스를 모두 죽이십시오.
미리 감사드립니다.
ProcessBuilder pb = new ProcessBuilder(args);
Process proc_1 = pb.start();
Process proc_2 = pb.start();
System.out.println("Child is running...wait for child to terminate");
int exitValue_1 = proc_1.waitFor();
System.out.println("Child_1 finished with exit value -> " + exitValue_1);
if(exitValue_1==0) proc_2.destroy();
int exitValue_2 = proc_2.waitFor();
System.out.println("Child_1 finished with exit value -> " + exitValue_2);
if(exitValue_2==0) proc_1.destroy();
스레드를 사용해야합니다. 두 개의 자식 스레드에 대해 알고있는 마스터 스레드가 있습니다. 두 개의 하위 스레드가 프로세스를 실행합니다. 첫 번째 프로세스가 반환 될 때이 자식 스레드는 마스터 스레드에 알리고 나머지 스레드는이를 알립니다. 마스터 스레드는 두 자식 스레드가 완료 될 때까지 기다리고있을 것입니다 ... – MadProgrammer
그럴 것이지만이 할당에서는 스레드를 사용할 수 없습니다. –
루프를 사용하여 각 프로세스의 종료 값을 확인할 수 있습니다 (예외가 발생하지 않으면 프로세스가 종료되지 않은 경우 IllegalThreadStateException이 발생 함). 예외가 발생하지 않고 값을 반환하면 완료해야합니다 ... – MadProgrammer