Я студент, который только начал изучать многопоточное программирование на основе Java.
В качестве одного из моих первых упражнений мне сказали создать процесс, который выполняет калькулятор Windows, затем подождите, покаПроцесс завершен, затем отправьте сообщение.Это фрагмент кода, который я сделал.
Process p = Runtime.getRuntime().exec("calc.exe");
p.waitFor();
System.out.println("Process finished");
Когда я его выполняю, открывается калькулятор Windows 10, а затем я получаю сообщение «Процесс завершен» .Я не знал, почему получил сообщение, когда процесс еще работал, поскольку калькулятор был открыт, поэтому я попытался запустить точно такой же код, но с "notepad.exe" в качестве команды дляexecute.
На этот раз результат выполнения был ожидаемым: я не получил сообщение, пока не закрыл блокнот.
Я пытался открыть другие программы Windows 10 по умолчанию, например "explorer.exe" , и некоторые из них работали так, как это должно работать, а другие - нет.
Мои мысли о том, как это работает, заключается в том, что "explorer.exe" или "calc.exe" работают как своего рода средство запускапоэтому, когда они получают процесс, выполняющий их, они создают свои собственные процессы, которые я не контролирую с помощью Java-программы.Это полное предположение , сделанное мной.
актуальный вопрос : Почему это происходит?Как калькулятор Windows 10 и другие программы работают с точки зрения процессов?
Заранее спасибо.