0

我需要通过 tcpip 套接字有效地将相同的消息发送/扇出到主机列表。该逻辑将需要遍历每个套接字以将消息写出。如果这个逻辑运行在 linux 用户模式下,底层 OS 调用系统调用的次数会和主机的数量一样多。这是昂贵的,因为每个系统调用都需要用户模式到内核模式的上下文切换。

如果可以在采用主机列表(文件描述符)的系统调用中移动循环,则效率会更高。linux中是否存在这样的系统调用?

如果存在这样的系统调用,我们在 Java 中是否有等效的 API(类似于 Java 中的 transferTo() 对应于 linux 中的 sendfile())?

4

1 回答 1

1

我记得,Java NIO 支持零拷贝。看看 SocketChannel 和 FileChannel 类。

于 2015-08-28T18:13:43.633 回答