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