我有一个需要执行两个操作的函数,一个快速完成,另一个需要很长时间才能运行.我希望能够将长时间运行的操作委托给一个线程,我不在乎线程何时完成,但线程需要完成.我实现了如下所示,但是,我的第二次操作永远不会完成,因为函数在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
}
}
Run Code Online (Sandbox Code Playgroud)