1

私のアプリでは、多数の TCP ソケット呼び出しを行う必要があります。

これを行うには、次の手順を実行する必要があります。 1. データ/コマンドをバイト ストリームに変換します。 2. ソケットを作成し、コマンドを送信して応答を受信します。 3. 応答を解析し、UI が使用できるように保存します。

これで、3 つの手順すべてを実行できるようにバックグラウンド スレッドを作成しました。

しかし、私のソケット クライアントでも、新しいコマンドごとに新しいスレッドを作成したいと考えています (ステップ 2)。これは、上記の 3 つのステップすべてで、共通のワーカー スレッド内に多数のワーカー スレッドがあることを意味します。

したがって、ワーカー スレッドで既に実行されているステップ #2 に Async タスクを使用しても問題ありません。または、この場合は通常のスレッドを使用しますか。

1 つのワーカー スレッドで 3 つのステップすべてを達成できないのはなぜかと思う人もいるかもしれません。ポイントは、すべてのソケット コマンドに対してワーカー スレッドを 1 つだけ作成したとしても、ステップ 1 の最初の要求自体がワーカー スレッドから来る可能性があるということです。

したがって、呼び出しがメイン UI スレッドからのものであると想定することはできません。また、Android で独自のワーカー スレッドを作成することが推奨されないかどうか、またその理由をお尋ねしたいと思います。

ありがとう、サニー

4

2 に答える 2