我正在开发一个复杂的多线程应用程序,它与用户和多个服务器进行交互。我想向用户显示一致的状态。假设当属性 A 更改时,属性 B、C、D 变得不一致并需要更新 - 更新可能需要运行一些复杂的算法,这取决于其他属性。但是属性 E 不依赖于 A,因此不需要更新。
我的问题是任何线程都可以随时更改任何属性,当然使用同步。因此,当线程使用获取的更新数据完成其任务时,这些数据可能已经过时了。在我的应用程序的理论推理中,当不需要其他更新时,可能存在一致的状态——我想向用户显示这一点。
在 GUI 多线程应用程序中,这些依赖项一般是如何管理的?目前,我使用的是时间戳,但这不足以解决更复杂的依赖关系。我正在考虑使用 gradle 或 maven,但它似乎有点矫枉过正,而且 GUI 应用程序应该保持快速响应。我有一个解决方案,但稍后可能需要额外的扩展,因此我宁愿使用一些现有的解决方案。