非阻塞 TCP/IP 的 SocketChannel
和 Selector
在 NIO 中帮助我用少量的线程处理很多 TCP/IP 连接。但是 UDP 的 DatagramChannels
呢?(我必须承认我对 UDP 不是很熟悉。)
即使 DatagramChannel
没有在阻塞模式下运行,UDP 发送操作似乎也不会阻塞。真的存在因拥塞或类似原因而导致 DatagramSocket.send(DatagramPacket)
阻塞的情况吗?我真的很好奇在生产环境中是否存在这样的情况以及可能存在哪些情况。
如果 DatagramSocket.send(DatagramPacket)
实际上并没有阻塞,并且我不会使用连接的 DatagramSocket
并且仅绑定到一个端口,那么使用非阻塞模式和 Selector
对 DatagramChannel
没有任何优势吗?