以下のように、接続タスクにExecutorServiceを使用しています。
ExecutorService executor = Executors.newSingleThreadExecutor();
Future<ApplicationConnection> future = (Future<ApplicationConnection>) executor.submit(new ConnectThread(crf, connoptions));
connection = future.get(300000, TimeUnit.SECONDS);
executor.shutdownNow();
call()
メソッドは、メソッド (独自の.connect()
API) を呼び出します。この接続メソッドは、さまざまなスレッドプールなどを生成します。私の懸念は、未来がタイムアウトしてエグゼキューターを強制終了した場合、.connect()
将来メソッドを呼び出すことによって既に生成されている可能性のあるスレッドも終了するのでしょうか? スレッドを強制終了すると子スレッドも強制終了されることはわかっていますが、これは同じロジックに従っていますか?