Mam funkcję, która musi wykonać dwie operacje, jedną, która kończy się szybko, a druga zajmuje dużo czasu. Chcę móc przekazać długotrwałą operację do wątku i nie obchodzi mnie, kiedy wątek się zakończy, ale wątki muszą zostać ukończone. Zaimplementowałem to tak, jak pokazano poniżej, ale moja druga operacja nigdy nie zostanie wykonana, ponieważ funkcja kończy się po wywołaniu start(). Jak mogę zapewnić, że funkcja zwraca, ale drugi wątek operacji również kończy wykonywanie i nie jest zależny od wątku nadrzędnego?W jaki sposób można zaimplementować naprawdę asynchroniczny wątek Javy
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
}
}
Nigdy nie używasz 'SecondOperation' w swoim' someFunction() ', jak możesz się spodziewać, że to uruchomi? –
brakuje nawet średnika: -/ – fortran
Przepraszamy, poprawiono błąd w moim kodzie. –