我在这里很新,我在学习Java 2个月了。我实际上是在学习线程和多线程,我有一个小问题。要练习我编写一个简单的2D纸牌游戏(例如MTG或HearthStone)。我现在已经做了很多事情,但是我想知道我必须使用多少个线程,才能创建最高效的应用程序并养成良好的习惯。
因此,目前,我在EventQueue中具有JFrame,并且其他类扩展了JPanel并实现Runnable,这是我的Board,并且具有游戏循环(具有init(),uptade()和repaint()以及Mouse Listeners方法)。
这对简单游戏有好处吗?还是板上的每个卡都应该有一个单独的线程来显示卡信息,重新粉刷等?
感谢您的帮助,
干杯!
最佳答案
线程化将大大增加程序的复杂性,因此请谨慎使用。 (这也是系统资源的重大承诺,但这在这里不太可能成为您的大问题)
我建议从头开始,使您的应用程序为单线程。如果您发现游戏逻辑花费了很长时间以至于使UI变得缓慢且无响应,则可以考虑在单独的线程上运行UI和游戏逻辑,但这是不太可能的(除非您的纸牌游戏非常复杂)。
真正开始考虑多线程模型的地方是当您有多个客户端连接时-每个客户端都需要他们自己的线程,并且您必须处理它们之间的交互。
我在Java线程中看到的最好建议是,几乎不需要显式处理它们。我建议您是否要在应用程序中添加一些多线程,将其作为培训练习来进行,但是请注意,这可能不是您在生产中要做的。