0

基本上我的问题是这样的:我有一个服务器在端口上回答(大量)请求,每个请求都转换为对其他机器上其他服务的 1 个或多个并行调用。在这种情况下,为每个请求执行一个线程效率不高,所以我试图找到一种以异步方式实现它的方法。到目前为止,我的解决方案基本上包括将表示与外部服务的连接的所有未来对象保存在一个数组中,并在专用线程中不断循环它,将完成的对象添加到 BlockingQueue 以进行进一步处理。这有效率吗?

有没有更好的方法来做到这一点?该数组由未来对象组成,主要是因为用于调用外部服务的处理程序将在后台执行它自己的异步内容共享,因此我可以依靠未来返回的接口来有效地处理该 IO。

提前致谢

4

2 回答 2

0

如果由于某些限制您无法将包重新写入某个事件/回调驱动的接口,请使用 CompletionService。

于 2013-09-30T08:53:56.483 回答
0

为此类任务创建了 Java框架的数据流。它可以很容易地与 Java7 nio2 异步网络库集成,如pipeline-nio项目所示。

于 2013-10-14T16:06:02.557 回答