java - 事件驱动的 future <V> - 线程池

标签 java multithreading callable

我们使用 callable<V>Future<V>从线程池接收终止线程的结果。我们应该调用get()接收返回的结果。我的问题是:它不是事件驱动的。是否有任何框架可以获得像 SIGCHLD 这样的结果对于 C 中的子进程? 我想要这样的东西:(当池中的每个线程完成作业时,线程池将调用此函数)

public void fetchResult(Thread t, Runnable r, Future<Integer> result) {
    Integer x = result.get();
    /* handle x */
    /* also we have Thread and Runnable object that has terminated */
}

最佳答案

您可能想查看 ThreadPoolExecutor.afterExecute()方法。它在每个任务完成后调用。您可以创建 ThreadPoolExecutor 的自定义子类,它具有您想要的基于事件的回调行为。

关于java - 事件驱动的 future <V> - 线程池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7868012/

相关文章:

java - 是否有用于处理 swing 应用程序中的数据库请求的框架?

java - Callable 如何防止 call() 返回值

c# - ASP.Net - Global.asax 的存在阻止并行请求执行?

php - php is_callable() 函数中的 2 个参数的作用是什么?

按列公式 CPLEX - 在列中添加新的约束集

java - 消费者/生产者问题 : pause production on slow consumption

java - 在java中读取属性文件的最佳方法?

java - Spring Boot安全轻松编码密码

java - Java 中大型 BigInteger 的更快质因数分解

c++ - 使用 fork() 与 exec() 创建新进程