我正在将一个非常古老的AWT游戏移植到一个非常糟糕的新设备上。该游戏有很多问题,包括对线程安全性的非常宽松的处理方式:游戏引擎试图在其引擎线程中直接在屏幕上绘制,使用从UI线程获得的图形上下文。这在该设备上无法工作。我已经设法使其正常工作,通过让引擎线程绘制到离屏缓冲区,然后让UI线程定期调用显示组件的repaint()方法,并将缓冲区复制到屏幕上,但性能很差——鉴于所有上下文切换和双缓冲,这并不奇怪。我实际上并不是一个特别了解AWT编程的程序员;它非常可恶,以至于我一直避免它。但是这个问题——引擎线程想要在屏幕上绘制——必须是一个常见的问题。有没有人知道如何以尽可能安全的方式进行此操作的好策略(最好附带示例代码!),并从系统中挤出尽可能多的性能?我特别想要的是一个安全的快捷方式,允许引擎线程在准备好时直接渲染到屏幕图形上下文中,从而避免告诉UI线程请求重绘。这将让我去掉整个双缓冲层。但我不知道是否可能做到这一点……这全部都是在PBP 1.1.2上完成的——是的,它既不是完整的Java也不是诚实的MidP……