2つの操作を実行する必要がある関数があります。1つは高速で終了し、もう1つは実行に時間がかかります。長時間実行される操作をスレッドに委任できるようにしたいのですが、スレッドがいつ終了するかは気にしませんが、スレッドは完了する必要があります。以下に示すようにこれを実装しましたが、start()呼び出しの後に関数が終了するため、2番目の操作は実行されません。関数が返されるが、2番目の操作スレッドも実行を終了し、親スレッドに依存しないことを確認するにはどうすればよいですか?
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
}
}