我有一个类似于Web浏览器的应用程序。用户将其指向页面,并显示该页面的内容。如果用户没有做任何事情,它也会定期刷新。
由于用户可以随时切换页面,因此应用程序最多可以同时拥有3个线程:
如您所见,如果在切换时发生定期更新,则应用程序的数据模型可以在任何时候从 A 或 B 更新正在处理。更新不是原子的(设置了一堆字段),因此这会导致有关下一页和当前页的信息混淆,并且应用程序的状态总体上会变得不一致。
我如何才能最好地同步这些更新?一些额外的细节:
executor.shutdown(); executor.awaitTermination(1, TimeUnit.DAYS)
重新启动它它似乎没有用。