У меня есть функция, которая должна выполнить две операции: одну, которая быстро завершается, и другую, выполнение которой занимает много времени. Я хочу иметь возможность делегировать длительную операцию потоку, и мне все равно, когда поток завершится, но потоки должны быть завершены. Я реализовал это, как показано ниже, но моя вторая операция никогда не выполняется, когда функция завершается после вызова start (). Как я могу гарантировать, что функция вернется, но поток второй операции также завершит свое выполнение и не зависит от родительского потока?
public void someFunction(String data)
{
smallOperation()
SecondOperation a = new SecondOperation();
Thread th = new Thread(a);
th.Start();
}
class SecondOperation implements Runnable
{
public void run(){
// doSomething long running
}
}