У меня есть функция, которая должна выполнять две операции: одну, которая заканчивается быстро и одна занимает много времени для запуска. Я хочу иметь возможность делегировать длительную операцию в поток, и я не забочусь о завершении потока, но потоки должны быть завершены. Я реализовал это, как показано ниже, но моя вторая операция никогда не выполняется, так как функция выходит после вызова start(). Как я могу гарантировать, что функция вернется, но второй рабочий поток также завершит ее выполнение и не зависит от родительского потока?Как реализовать реалистично асинхронный поток java
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
}
}
Вы никогда не используете 'SecondOperation' в свой' someFunction() ', как вы ожидаете его запуска? –
вам даже не хватает точки с запятой: -/ – fortran
Извините, исправлена ошибка в моем коде. –