gpt4 book ai didi

java - 从并行线程结果更新 View

转载 作者:行者123 更新时间:2023-12-01 14:03:30 24 4
gpt4 key购买 nike

我的数据模型层中有两个线程“并行”运行,并且都计算一些值。我有一个 mvc 模式设置,因此我的数据模型有两个数组,每个数组负责从每个线程生成的值。我如何告诉我的 View 我的数组有新数据而不阻塞主 UI?

我的线程每 x 秒在计时器上运行一次,并且每个线程生成一个整数。其中每一个都需要添加到一个数组中,添加后, View 应该通过观​​察者模式获得通知,以根据两个数组的更新值更新屏幕。这应该在主 ui 线程上不会阻塞的情况下发生。所以我真的不能做 while(true) 或为每个线程设置一个 futureValue,因为这会让我的用户界面等待线程完成。我能做什么?

最佳答案

你将永远:

  • 扩展包含结果的数组类并覆盖 add 方法
  • 在最后添加add通知UI-Thread的代码
  • 要同步更新,您可以使用只有一个线程的 ExecutorService,这是通过 Executors.newSingleThreadExecutor() 获得的。您可以通过 submit() 代码来通知 UI-Thread。
  • 您的执行应该是 WorkerThread 的一部分,并在 doInBackground 中处理
  • done() 方法中更新用户界面(done() 在 Swing 的事件调度线程上执行)

请参阅此处了解有关 Threads and Swing 的更多信息

关于java - 从并行线程结果更新 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19131862/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com