java – 正在访问BufferedImage线程安全

Java中,我有2个线程都访问(不修改)相同的BufferedImage.我只是将缓冲的图像绘制成一个单独的Graphics2D对象,代码如下.

Graphics2D g = getGraphics();
g.drawImage(myImage, 0, 0, null);

有什么理由我需要同步访问图像吗?

我知道AWTEventThread不是线程安全的等等.我只是在后台线程中构建一些BufferedImages.

非常感谢…

解决方法:

(你的问题的标题实际上与正文中描述的情景不符,所以我假设你在询问这两种情况……)

刚刚访问(在那一点)不变的BufferedImage的两个线程不需要在它们之间进行同步.

但是,确实需要在首先创建和初始化BufferedImage对象的线程与随后读取它的任何线程之间发生先发生关系.没有该同步点,读取线程可能会看到图像数据结构的某些部分的陈旧值.

上一篇:java – TYPE_4BYTE_ABGR到TYPE_3BYTE_BGR转换


下一篇:Java2D / Swing:将具有文本抗锯齿功能的组件渲染到BufferedImage