1

这个问题是半理论的,半是如何正确编码的。

我正在考虑用 Java 制作一个可以接受流数据的应用程序,并在数据进入时更新 GUI。

所以,我想做的只是在 Java 中生成线程,这些线程将:

  1. 收集 X 毫秒的数据,
  2. 获取新数据并使用它更新 GUI
  3. 同时,启动一个新线程,收集X毫秒的数据
  4. 这个新线程必须从第一个线程开始的地方开始

同时,程序的所有其他部分也在各自的线程中进行。

所以我需要确保线程不会发生冲突,混合中没有数据丢失,并且我需要了解速度限制。假设数据以 1 Gbs 和 1 Mbs 的速度输入,这会产生什么编程差异?

特定应用程序包括来自蓝牙的数据以及通过 HTTPS REST API 来自 Internet 的数据

如果有人有示例,无论是在线示例还是此处快速而肮脏的示例,那就太好了。我的谷歌搜索干了..

4

1 回答 1

0

这个问题相当广泛,但从架构的角度来看,我认为如果将其更改为从设备读取数据并将数据放入缓冲区的一个线程以及从该缓冲区读取数据并更新 UI 的一个线程,复杂性会大大降低。这减少了需要处理多个线程同时访问它的代码(理想情况下,它将减少到您使用的缓冲区)并使同步更加容易。它还将数据的获取与显示数据分离。

可以从使用 PipedInputStream 和 PipedOutputStream 开始编写缓冲区,但是在我的一个项目中,如果您真的想提供实时处理和显示,结果证明它不够快,因此您最终可能会为自己编写一个低延迟缓冲类。

于 2013-02-19T07:42:35.867 回答