我有一个父线程。它的工作是排队请求和初始化子线程。子线程应该从 Web 服务获取数据并回调到父线程。父线程处理数据并启动另一个子线程。问题是回调方法中的所有内容都由子线程而不是父线程处理。有没有办法处理父线程的回调?换句话说,子线程在调用回调方法后立即完成而不对其进行处理。
问问题
1328 次
2 回答
2
您需要为此进行一些设计,但对于初学者来说,如果主线程除了等待子线程完成之外什么都不做,我看不到子线程的意义。另一方面,如果主线程必须为进一步的传入请求提供服务,那么它也不能为来自子线程的回调提供服务。你将不得不重新考虑这一点。一种想法是让一个线程收集请求并将它们推送到队列中。子线程将它们的事件推送到同一个队列,并且有一个单独的线程处理来自队列的事件——来自子线程的请求和响应。
如果这样的事情对您来说听起来不错,那么请务必使用ExecutorService
来处理工作排队。
于 2012-04-25T12:04:36.940 回答
0
正如 Marko 提到的,您可以使用具有 Future 引用的 ExecutorService ,您可以将运行作业的结果返回到其父线程。
于 2012-04-25T12:19:55.173 回答