在Scala中使用ScheduledThreadPoolExecutor闪烁图像

时间:2020-01-28 21:23:10

标签: multithreading image scala

我想在Scala中以300毫秒的间隔刷新几十个图像。经过四处搜寻,我发现ScheduledThreadPoolExecutor​.scheduleAtFixedRate是实现此目标的好方法。

在我的机器上测试单个图像的读取和显示时间在160毫秒以下,这显然小于所需的300毫秒间隔。但是,当我尝试上述方法时,我得到的图像有些“生涩”。在大多数情况下,按照规定的300毫秒间隔,图像会稳定地闪烁,但过一会儿,闪烁变得非常不均匀。

起初,我怀疑加载图像的显示可能超过了规定的300毫秒,但是当我在Runnable()中打印出过程的总运行时间时,我发现它们都在300以下毫秒。

我想知道造成这个问题的原因是什么。有人建议我可以将任务进一步分解为较小的部分,并使用不同的线程来运行这些部分,例如,使用一个线程读取图像,使用另一个线程显示图像,等等。

0 个答案:

没有答案
相关问题