我正在用Java編寫一個程序,我在一個線程上打開了256個網絡連接。每當套接字上有任何數據時,我應該閱讀它並處理它。目前,我公司採用以下方法:關於網絡連接的Java輪詢
while true
do
iterate over all network connections
do
if non-blocking read on socket says there is data
then
read data
process it
endif
done
sleep for 10 milli-seconds
done
有沒有更好的方式做關於Java一樣?我知道在C/C++中有一個輪詢方法。但經過Google的搜索後,我沒有得到有關Java的投票的具體想法。有人可以解釋這一點嗎?
只是一個想法...一個進程的256個網絡連接是不是有點過分? – Sinkingpoint 2013-03-19 06:58:23
您可以爲每個網絡連接創建一個阻塞讀取線程。這樣你就不會迭代連接(它是由我認爲的OS完成的),當數據到達時(不再需要休眠),線程將喚醒。 – Burkhard 2013-03-19 06:58:34
@Quirliom程序需要它。我無法減少連接數量。 – 2013-03-19 07:48:56