gpt4 book ai didi

java - 服务器/客户端停止 1 个线程 = 1 个客户端

转载 作者:行者123 更新时间:2023-11-29 05:57:08 27 4
gpt4 key购买 nike

协议(protocol):TCP

我有一个带有 SocketServer 的服务器,它接受客户端并将套接字(由 ss.accept() 返回)放入一个数组中。

我有 1 个线程需要在准备好读取套接字(客户端发送的数据)时得到通知。该线程会将请求分派(dispatch)给其他线程进行处理,因此该初始线程所做的事情非常简单和快速。

这可能吗?

我真的很想避免 1 个线程 = 1 个客户端,让 1 个线程处理 N 个客户端。

最佳答案

我想你可能想看看 Java NIO 的非阻塞 IO 方面其中一些在这篇关于 "Architecture of a Highly Scalable NIO-Based Server" 的文章中进行了讨论。
另外我认为 this question 的答案会帮助你。

通常,非阻塞 IO 使用回调 - 您的代码将需要注册一个处理程序,以便在数据可用时“回调”。在这种情况下,处理程序会将消息或数据发布到您的单个线程 - 这必须是线程安全的才能处理并发通知/回调。

关于java - 服务器/客户端停止 1 个线程 = 1 个客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11628420/

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