Ele*_*ist 0 java database multithreading mud
我正在开发一个基于文本的游戏MUD.我已准备好程序的基本功能,现在我想允许一次连接多个客户端.我计划使用线程来实现这一目标.
在我的游戏中,我需要存储每个玩家的当前位置或健康点等信息.我可以把它放在数据库中,但是因为它会很快变化,有时候每一秒都会变得很低效(我是对的吗?).
我的问题是:线程可以表现为"会话",即保存每个用户独有的一些数据吗?
如果是的话,你能指导我一些我可以用来帮助我了解它是如何工作的资源吗?
如果不是,你有什么建议?数据库是一个不错的选择还是你会推荐其他东西?
干杯,Eleeist
是的,他们可以,但这是一种令人难以置信的愚蠢做事方式.首先,它会永久锁定您的"每个客户端一个线程"模型.另一方面,实现用户之间的交互很困难(甚至可能不可能),我相信你的MUD有.
相反,有一个存储用户的某种集合,每个用户都有数据.将持久数据保存到数据库,但不需要在每次更改时更新临时数据.
处理此问题的一种方法是在每个用户中使用"已更改"布尔值.对用户进行重要更改时,请立即将其写入数据库.但如果这是一个例行的非关键变化,只需设置"已更改"标志即可.然后每隔一段时间就有一个线程,并将更改的用户写入数据库(并清除"已更改"标志).
当然,请使用适当的同步!
| 归档时间: |
|
| 查看次数: |
695 次 |
| 最近记录: |