2014-10-01 2 views
0

Я выполняю другую программу Java через объект Process.
Для этого требуется некоторое время. Между тем родительская программа продолжит работу или будет приостановлена, чтобы остановить процесс дочернего процесса?Процессы в Java - работают ли они одновременно?

Я знаю, что два потока могут работать параллельно, может ли поток использоваться для выполнения этой другой программы?

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация, если это стало слишком абстрактным.

+3

Почему бы не попробовать и не посмотреть? – immibis

+0

Да, я тоже стараюсь. Но подумал просить вас всех раз. – user1930402

+0

Полезная страница о потоках/процессах, которые должны ответить на ваш вопрос: http://docs.oracle.com/javase/tutorial/essential/concurrency/procthread.html – mkobit

ответ

7

Выполняется отдельно, если вы не блокируете ожидание данных из другого процесса (например, вызываете Process.getInputStream(), а затем читаете с него) или звоните Process.waitFor(). Второй процесс имеет свои собственные потоки - это не потоки процесса, которые запускают второй процесс.

Конечно, возможно, что оба процесса будут работать с одним и тем же ресурсом и должны сотрудничать в этом смысле, но в целом использование нескольких процессов - это уровень разделения от потоков. (Относительно сложно получить процессы для доступа к одной и той же памяти, чтобы их потоки координировались друг с другом и т. Д.)

2

Два процесса независимы и работают параллельно. Родитель может дождаться, когда ребенок завершит вызов метода waitFor в классе Process.

Смежные вопросы