Ответ
Процесс — это экземпляр выполняемой программы, изолированный экземпляр с собственными ресурсами, который управляется операционной системой.
Ключевые характеристики процесса:
- Изоляция: Имеет собное виртуальное адресное пространство в памяти.
- Ресурсы: Владеет выделенными ресурсами (память, открытые файлы, сетевые сокеты).
- Потоки: Может содержать один или несколько потоков выполнения (threads).
| Отличие процесса от потока: | Процесс | Поток (Thread) |
|---|---|---|
| Изолированное адресное пространство | Разделяет память процесса-родителя | |
| Тяжеловесный, создание/переключение дорого | Легковесный, создание/переключение дешевле | |
| Коммуникация через IPC (каналы, сокеты) | Коммуникация через общую память |
Создание процесса в Java:
// Использование ProcessBuilder (рекомендуемый способ)
ProcessBuilder pb = new ProcessBuilder("notepad.exe", "myfile.txt");
pb.directory(new File("C:\Users")); // Установка рабочей директории
Process process = pb.start(); // Асинхронный запуск
// Чтение вывода процесса
InputStream inputStream = process.getInputStream();
// ... чтение из потока
int exitCode = process.waitFor(); // Блокировка до завершения
System.out.println("Код завершения: " + exitCode);
// Устаревший способ (Runtime.exec)
// Process p = Runtime.getRuntime().exec("cmd /c dir");
Процессы в Java используются для запуска внешних команд, скриптов или других приложений.