1

この質問は半分理論であり、半分は適切にコーディングする方法です。

ストリーミング データを受け入れる Java でアプリを作成し、データが入ってくると GUI を更新することを考えています。

したがって、私が考えているのは、Java で次のようなスレッドを生成することです。

  1. Xミリ秒のデータを収集し、
  2. 新しいデータを取得して GUI を更新する
  3. 同時に、新しいスレッドを開始し、X ミリ秒間データを収集します
  4. この新しいスレッドは、最初のスレッドが始まったところから開始する必要があります

同時に、プログラムの他のすべての部分も独自のスレッドで実行されます。

そのため、スレッドが衝突しないようにする必要があり、ミックスでデータが失われないようにし、速度制限を理解する必要があります。データが 1 Gbs と 1 Mbs で入ってくるとしたら、それによってどのようなプログラミング上の違いが生じるでしょうか?

特定のアプリケーションには、Bluetooth からのデータと、HTTPS REST API を介したインターネットからのデータが含まれます。

誰かがオンラインで、またはここで手早く汚いものを例に挙げてくれれば、それは素晴らしいことです。私のGoogle検索は乾いた..

4

1 に答える 1

0

質問はかなり広いですが、アーキテクチャの観点から、デバイスから読み取り、データをバッファに入れ、そのバッファから読み取り、UIを更新する1つのスレッドに変更すると、複雑さが大幅に減少すると思います。これにより、同時にアクセスする複数のスレッドを処理する必要のあるコードが削減され(理想的には、使用するバッファーに削減されます)、同期がはるかに簡単になります。また、データのフェッチと表示を切り離します。

バッファの書き込みは、PipedInputStreamとPipedOutputStreamを使用して開始できますが、私のプロジェクトの1つでは、リアルタイムの処理と表示を本当に提供したい場合は十分な速度ではないことが判明したため、低レイテンシで作成することになります。バッファクラス。

于 2013-02-19T07:42:35.867 に答える