java.awt.image.BufferedImage
我有一个后台线程,它以自上而下的左右方式生成图像的像素(假设 a ),我希望 Swing gui 定期绘制图像的可用部分,以向用户显示进度。据我从许多答案中了解到,BufferedImage
它不是线程安全的,所以我想知道是否可以使用 ajava.util.concurrent.Semaphore
来强制同步和内存一致性。后台线程将release()
在每次像素写入操作后调用信号量,而 ajavax.swing.Timer
将调用drainPermits()
信号量并请求要绘制的返回像素数。我想这个方案应该可以工作,因为文档Semaphore
说明:
在调用“释放”方法之前线程中的操作,例如
release()
在成功的“获取”方法之后的操作,例如acquire()
在另一个线程中。
请告诉我我是否正确。