0

我正在开发一个复杂的多线程应用程序,它与用户和多个服务器进行交互。我想向用户显示一致的状态。假设当属性 A 更改时,属性 B、C、D 变得不一致并需要更新 - 更新可能需要运行一些复杂的算法,这取决于其他属性。但是属性 E 不依赖于 A,因此不需要更新。

我的问题是任何线程都可以随时更改任何属性,当然使用同步。因此,当线程使用获取的更新数据完成其任务时,这些数据可能已经过时了。在我的应用程序的理论推理中,当不需要其他更新时,可能存在一致的状态——我想向用户显示这一点。

在 GUI 多线程应用程序中,这些依赖项一般是如何管理的?目前,我使用的是时间戳,但这不足以解决更复杂的依赖关系。我正在考虑使用 gradle 或 maven,但它似乎有点矫枉过正,而且 GUI 应用程序应该保持快速响应。我有一个解决方案,但稍后可能需要额外的扩展,因此我宁愿使用一些现有的解决方案。

4

1 回答 1

1

Java Swing 提供了侦听器,因此作为开发人员,您可以知道动作何时发生,例如按下按钮。

以同样的方式,您的线程可以提供动作侦听器,以便 Swing GUI 可以知道何时更新属性。

您将不得不编写这些动作侦听器。在EventListenerList的 Javadoc 中找到了一个示例

阅读这篇文章Event Listener,了解另一个编写事件侦听器的示例。

于 2013-06-12T09:31:33.277 回答