2011-12-09 8 views
9

BlockingQueueからタスクを引き出す通常のスレッドを作るのではなく、誰かがAndroid Looper機能を使って "パイプラインスレッド"を作成する理由を説明できる人はいますか?表面上、同じことをするのは2つの方法のようです。Android LooperとBlockingQueueはどちらですか?

答えて

4

BlockingQueueを使用すると、複数のコンシューマとプロデューサを使用できますが、Looperのメカニズムでは複数のプロデューサを使用できますが、コンシューマは1つのみです。

ルーパースレッドでは、一度に1つのタスク(実行可能)しか実行しません。ルーパー・メカニズムは、UIスレッド(単一のスレッドとして動作し、単一のスレッド・コンシューマと考える)で実行可能なタスク(メッセージとしてカプセル化されたタスク)を簡単に実行できるように作成されました

ルーパ/ハンドラは、 BoxingからBlockingQueueのタスクを除外することはできません。このことはUIツールキットのコンテキストでも重要です。

関連する問題