我正在使用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()
方法产生的线程也会结束吗?我知道杀死一个线程也会杀死任何子线程,但这是否遵循相同的逻辑?