我们使用 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/