我有一個任務,我必須創建一個進程的兩個實例,而其他進程必須在其中一個進程終止時終止。我只能在關閉創建的第一個進程時執行此操作,這是否意味着創建的進程具有某種層次結構,即使它們都是同一進程的子進程?同時殺死這兩個進程
在此先感謝。
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