我正在用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