我正在使用ExecutorService来调用一个服务,该服务基本上连接到一个应用程序(本地或通过 SSH 远程),并允许向其发送命令并获取其输出。
因此,Thread由 所创建的ExecutorService正在等待用户输入,然后通过 call 方法的实现将该输入作为任务处理,该方法返回输出,如下所示:
@Override
public String call() throws Exception {
write(command);
return readResult();
}
Run Code Online (Sandbox Code Playgroud)
当给定时间内没有调用任何任务时,我想停止Thread(关闭ExecutorService),但我找不到如何执行此操作...Future.get或者ExecutorService.invoke[All|Any]可以处理超时,但仅涉及它调用的任务。
关于我如何能够做到这一点有什么想法吗?