依赖套接字setReceiveBufferSize或使用BlockingQueue?

时间:2013-08-25 11:59:37

标签: sockets blockingqueue

我正在做一个应用程序,意味着要读取发送到我的套接字的大量数据。

我遇到的问题是我是否应该依赖套接字setReceiveBufferSize,在那里放一个大值,希望它能收集我拥有的所有数据,直到我能够处理它,或者使用BlockingQueue来放置所有数据然后从另一个保持池和处理数据的线程处理它?

如果我让队列中包含最大数量的元素,这也是一个糟糕的设计吗? (所以我只是告诉它,“是的,收到的元素和你想要的一样多”),如果我收到大量的元素,我指的是内存消耗?

此致 奥勒利安

1 个答案:

答案 0 :(得分:0)

大型套接字接收缓冲区总是一个好主意,但对于TCP窗口/吞吐量的原因,并不是因为您可能读取速度慢。您应该尽可能快地读取输入,当然要尽快读取。建议的BlockingQueue完全浪费时间和空间。如果套接字接收缓冲区填满,发送方将停止。这就是你所需要的一切。