【发布时间】:2011-10-23 17:58:58
【问题描述】:
我们使用callable<V> 和Future<V> 从线程池接收终止线程的结果。我们应该调用get() 来接收返回的结果。我的问题是:它不是事件驱动的。是否有任何框架可以为 C 中的子进程获得类似 SIGCHLD 的结果?
我想要这样的东西:(当池中的每个线程完成工作时,线程池将调用此函数)
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 */
}
【问题讨论】:
-
你能不能再表达一下?目前还不清楚你到底想要什么
-
“事件驱动”的哪一部分对您来说很重要?我假设这不是缺少忙等待,因为 Future.get() 不忙等待。
-
@Avi:它不会忙等待,但会锁定。我不想锁。我希望主线程做一些工作。当池中的线程终止时,池调用一个函数,当我调用
Future.get()时,它会在该函数中立即返回。
标签: java multithreading callable