我有一个函数需要执行两个操作,其中一个快速完成,另一个需要较长时间才能运行。我想将长时间运行的操作委托给一个线程,我不关心线程何时完成,但线程必须完成。我按照下面的方式实现了这个功能,但是,我的第二个操作永远不会完成,因为函数在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
}
}
someFunction()
中从未使用过SecondOperation
,你怎么期望它能运行呢? - Joachim Sauer