我想提高代码在java.awt.Graphics2D
上获得的BufferedImage
实例上的绘图性能。 (Swing和UI根本不在图片中)。无论Graphics2D
的实例是否是线程安全的,我都在努力寻找一个明确的答案,即。是否可以在同一实例上设置N个不同的线程?
答案 0 :(得分:1)
好吧,Graphics2D
和Graphics
是没有任何状态的抽象类,因此从理论上讲它们可能是线程安全的,但这取决于您获得的实际实现/子类。
但是,如果您的绘图代码可能导致重叠,则处理多个线程可能会变得非常复杂(如果您可以订购形状并且不涉及透明度,则可能可以使用一些z缓冲) 。因此,我不会在同一画布(图形对象)上进行多线程渲染而感到烦恼。
相反,我建议将渲染分为多个离散任务,并在最后合并结果。
根据您实际渲染的内容,我可以想象2种基本方法: