gpt4 book ai didi

java - SocketChannel.write() 在单个线程中处理多个客户端

转载 作者:行者123 更新时间:2023-12-02 08:06:32 26 4
gpt4 key购买 nike

我的应用程序有一个队列,其中包含“传出网络数据包”(带有 ByteBufferSocketChannel 的 POJO),由将数据写入的单个线程使用SocketChannel

我这样做是为了保证每个应该接收数据包的客户端都能轮到。这意味着 SocketChannel.write() 按顺序写入多个客户端(= 一次 1)。

谁能告诉我这样工作会出什么问题吗? SocketChannel 是从 ServerSocketChannel 创建的,因此它们是阻塞的。

我担心 write() 操作可能会阻塞 1 个客户端,导致其他客户端等待...

最佳答案

write()操作确实可以在阻塞模式下阻塞。如果您想要公平和单线程,则必须使用非阻塞模式。

关于java - SocketChannel.write() 在单个线程中处理多个客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8076033/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com