我在这里很新,我正在学习java 2个月。我实际上正在学习线程和多线程,我有一个小问题。练习我写一个简单的2D纸牌游戏(如MTG或HearthStone)。我已经为这一刻做了很多,但我想知道我必须使用多少线程来创建最有效的应用程序并获得良好的习惯。
所以,现在我在EventQueue中有JFrame,其他类扩展了JPanel并实现了Runnable,这是我的Board,它有游戏循环(使用init(),uptade()和repaint()以及Mouse Listeners方法)
这对简单游戏有用吗?或者,董事会中的每张卡片都应该有一个单独的线程来显示卡片信息,重新绘制等等?
我很感激每一个帮助, 干杯!
答案 0 :(得分:4)
线程会大大增加程序的复杂性,因此请谨慎使用。 (这也是系统资源的一大承诺,但这不太可能是你的大问题)
我建议首先,让您的应用程序单线程化。如果您发现游戏逻辑需要很长时间才会使UI缓慢且无响应,您可能会考虑在不同的线程上运行UI和游戏逻辑,但这是不太可能的(除非您的纸牌游戏认真复杂)。 真正开始考虑多线程模型的地方就是当你有几个客户端连接时 - 那么每个客户端都需要自己的线程,你必须处理它们之间的交互。
我在Java中的线程中看到的最好的建议是,您几乎不需要明确地处理它们。我建议你是否想在你的应用程序中添加一些多线程,将其作为一个训练练习,但要注意这可能不是你在生产中所做的事情。