【发布时间】:2011-02-10 05:25:12
【问题描述】:
我有一个函数需要执行两项操作,一项完成速度很快,一项需要很长时间才能运行。我希望能够将长时间运行的操作委托给一个线程,我不在乎线程何时完成,但线程需要完成。我实现了这个,如下所示,但是,我的第二个操作永远不会完成,因为函数在 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,你希望它如何运行? -
你甚至少了一个分号 :-/
-
抱歉,修复了我的代码中的错误。
标签: java multithreading asynchronous runnable