gpt4 book ai didi

java - 这是一个好的多线程服务器设计吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:01:55 25 4
gpt4 key购买 nike

我有一个用于客户端-服务器游戏的服务器(理想情况下是小型 MMO 的基础),我正在尝试确定组织所有内容的最佳方式。这是我所拥有的概述:

[server start]
load/create game state
start game loop on new thread
start listening for udp packets on new thread
while not closing
listen for new tcp connection
create new tcp client
start clients tcp listener on new thread
save game state
exit

[game loop]
sleep n milliseconds // Should I sleep here or not?
update game state
send relevant udp packet updates to client
every second
remove timed out clients

[listen for udp]
on receive, send to correct tcp client to process

[listen for tcp] (1 for each client)
manage tcp packets

对于管理游戏状态、tcp 连接和发送/接收状态更新的 udp 数据包来说,这是一个公平的设计吗?有任何意见或问题吗?

我最感兴趣的是实现游戏循环的最佳方式。我知道如果我有大量客户,我会遇到问题,因为我正在为每个新客户生成一个新线程。

最佳答案

这看起来是设计的合理起点。就扩展线程数而言,超过 10 个客户端(根据您的评论)也不错。只要线程大部分时间都在等待而不是实际处理某些事情,您就可以轻松地在事情开始崩溃之前拥有数千个线程。我记得 5 年前的类似设计达到了一些限制,大约有 7000 个线程。

关于java - 这是一个好的多线程服务器设计吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5656814/

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