我需要通过tcpip套接字有效地将相同的消息发送/扇形发送到主机列表。该逻辑需要循环遍历每个套接字以将消息写出来。如果这个逻辑在linux用户模式下运行,底层操作系统调用系统调用的次数将与主机的数量一样多。这是昂贵的,因为每个系统调用都需要用户模式到内核模式的上下文切换。
如果循环可以在接受主机列表(文件描述符)的系统调用中移动,将会更有效。这样的系统调用在linux中存在吗?
如果存在这样的系统调用,我们在Java中是否有一个等效的API(类似于Java中的transferTo()对应于linux中的sendfile())?
我记得Java NIO支持零复制。看一下SocketChannel和FileChannel类