java - 如何使用 ThreadPoolTask​​Executor 设置任务超时

标签 java multithreading threadpool executorservice

使用ThreadPoolTask​​Executor时是否可以使任务超时?我无法将 ThreadPoolTask​​Executor 更改为 ThreadPoolExecutor 或 ExecutorService。

最佳答案

向您的ThreadPoolTask​​Executor提交Callable后,您应该得到一个Future。而在这个Future上,你可以调用get(long timeout, TimeUnit unit)函数,并带有一个TimeUnit,它是超时,最大程序将通过抛出 TimeoutException 等待,直到 future 交付或继续运行。

ie(未经证实的伪代码)

Future myFuture = threadPoolTaskExecutor.submit(myCallable);
try {
    myResult = myFuture.get(5l,TimeUnit.SECONDS);
} catch(TimeoutException e) {
    // Timeout-Related stuff here
}

关于java - 如何使用 ThreadPoolTask​​Executor 设置任务超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41099778/

相关文章:

java - 查找给定区号的州

java - 强制 Java 刷新 Java Swing GUI

c# - 等待 2 个线程中的 1 个完成

c# - 在 IIS 应用程序 (asp .net) 上使用任务/线程池

postgresql - 以适用于 JavaSE 的 JavaEE 友好方式获取计时器(用于 JDBC 驱动程序)

java - 线程不同时运行

java - 与 jar 中的 MANIFEST.MF 相关的问题

java - MongoDB Java 驱动程序 - 对象类型

java - WebSphere Liberty——从 Java 连接到安全网关

c# - 获取线程 Cpu 使用率