我目前正在开发一个模拟系统,涉及到数千个1x1像素的2D矩形在一个JPanel中移动。这些矩形会相互碰撞和合并。
我创建了一个事件调度线程来创建GUI。然后我创建了一个模拟实例,并使用游戏循环控制系统,使用move()、detectCollision()和repaint()方法,所有的矩形都存储在全局的ArrayList中。 move()方法将每个矩形向左或向右移动1像素,而detectCollision()方法则检查两个矩形是否相邻,如果适用,则将它们合并。
该系统目前可以工作,但运行速度非常慢。将计时器放置在每个方法周围显示,detectCollision()方法可能需要长达1000ms才能完成。我的问题是,我是否可以在detectCollision()方法内部使用工作线程来提高程序的效率?
我创建了一个事件调度线程来创建GUI。然后我创建了一个模拟实例,并使用游戏循环控制系统,使用move()、detectCollision()和repaint()方法,所有的矩形都存储在全局的ArrayList中。 move()方法将每个矩形向左或向右移动1像素,而detectCollision()方法则检查两个矩形是否相邻,如果适用,则将它们合并。
该系统目前可以工作,但运行速度非常慢。将计时器放置在每个方法周围显示,detectCollision()方法可能需要长达1000ms才能完成。我的问题是,我是否可以在detectCollision()方法内部使用工作线程来提高程序的效率?