Таким образом, вместо «спящего» потока, как в Thread.sleep();
, чтобы просто позволить процессам работать в другом потоке и заставить новый поток спать с Thread.sleep();
, но не с исходным Thread
. Это возможно?
Вот мой метод, который я хочу запустить на новом Thread
с именем processesThread
:
private void Processes() throws IOException, InterruptedException {
// New Thread "processesThread" will start here.
Runtime rt = Runtime.getRuntime();
List<Process> processes = new ArrayList<Process>();
// "runnableTogether" will be the number that the user inputs in the GUI.
switch (runnableTogether) {
case 4:
processes.add(rt.exec("C:/Windows/System32/SoundRecorder.exe"));
case 3:
processes.add(rt.exec("C:/Windows/System32/taskmgr.exe"));
case 2:
processes.add(rt.exec("C:/Windows/System32/notepad.exe"));
case 1:
processes.add(rt.exec("C:/Windows/System32/calc.exe"));
Thread.sleep(5000);
destroyProcesses(processes);
break;
default:
System.exit(0);
break;
}
// New Thread "processesThread" will end here.
}
Это возможно? И если да, то как?
Я исследовал запуск нового Threads
, но не могу понять, как заставить его работать с моей программой.
РЕДАКТИРОВАТЬ: я надеялся использовать что-то похожее на этот подход:
Thread processesThread = new Thread() {
public void run() {
// Code here.
}
};
processesThread.start();
Любые идеи?