Java对象缓冲以避免网络匮乏

时间:2018-10-08 10:14:22

标签: java queue buffer blocking starvation

考虑到一个简单的网络通信场景,其中客户端一次从一个对象中“抽取”服务器中的数据,那么最大程度地减少缓冲区不足的最佳方法是什么?

一个典型的用例是单个生产者/消费者连接,其中客户端应用程序通过Java SDK向数据库服务器提交查询,并获取results iterator(光标)对象作为查询的返回值

在理想的网络条件下,连续调用迭代器的next()方法足以及时检索所有查询结果。但是,如果连接的响应时间有所不同(例如,由于服务器或网络拥塞所致),则对next()方法的调用将间歇性返回,甚至阻塞更长的时间。

使用队列(例如,Java BlockingQueue)在读取结果之前(即,在调用next()方法之前)写入了许多对象的队列,可以消除这种延迟差异。有没有更合适的方法?

0 个答案:

没有答案