2

n 個のポートをリッスンする必要がある Android ソフトウェアを設計しています。10 としましょう。100 ミリ秒ごとに、ポートに新しい UDP パケットがあるかどうかを確認したいと考えています。パケットを受信した後、内部のデータを UI スレッドに渡す必要があります。

私の質問は、1 つのスレッドを使用してすべての異なるポートからデータを受信する必要があるか、それともポートごとに独自のスレッドを作成し、それぞれ 100 ミリ秒間隔で実行する必要があるかということです。これらの場合の良い習慣は何ですか?

ポートにデータがある場合、オブジェクトに逆シリアル化され、UI スレッドのビューでデータを更新するために使用されます。

私はソケットプログラミングとより高度な並行プログラミングにまったく慣れていないので、ウェブから良い答えを見つけることができずに、これをためらっていました。

4

2 に答える 2

1
My question is should I use one thread to receive data from all different ports or 
should I create own thread for every port, each timed to run at 100ms interval? 
What is the good practice in these cases?

それほど問題ではありません。1 つのスレッドを作成する場合は、さまざまなポートを追跡する必要があります。複数のスレッドを作成する場合は、これらすべてのスレッドを追跡する必要があります。最近のCPUは通常マルチスレッドであるため、複数のスレッドを使用します。

100 ミリ秒のタイマー間隔に関しては、すべてのスレッドをループしてこれらのスレッドからデータを収集する 1 つのタイマーを作成できます。前のイベントがまだデータを収集している間にタイマーが経過した場合、これら 2 つが互いに干渉しないように、必ずロックしてください。

于 2013-07-31T12:13:34.083 に答える