轮询Java中的大量IO连接

时间:2013-09-30 08:27:17

标签: java asynchronous future

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

有更好的方法吗?该数组由未来的对象组成,主要是因为用于调用外部服务的处理程序将在引擎盖下自己共享异步内容,因此我可以依赖未来的返回接口来有效地处理该IO。 / p>

提前致谢

2 个答案:

答案 0 :(得分:0)

如果出于某些限制,您无法将程序包重新编写到某个事件/回调驱动的界面中,请使用CompletionService。

答案 1 :(得分:0)

为此类任务创建了

Dataflow for Java框架。它可以很容易地与Java 7 nio2异步网络库集成,如pipeline-nio项目中所示。