BlockingQueueからタスクをプルする通常のスレッドを作成する代わりに、Android Looper機能を使用して「パイプラインスレッド」を作成する必要がある理由を誰かが説明できますか?表面的には、同じことを行うには2つの方法のように見えます。
1001 次
1 に答える
4
BlockingQueueを使用すると、複数のコンシューマーとプロデューサーを使用できますが、Looperメカニズムを使用すると、複数のプロデューサーを使用できますが、コンシューマーは1つだけです。
したがって、Looperスレッドでは、一度に1つのタスク(実行可能)のみを実行します。ルーパーメカニズムは、UIスレッド(シングルスレッドとして実行されるため、シングルスレッドコンシューマーと考えてください)でランナブル(メッセージとしてカプセル化されたタスク)を簡単に実行できるように作成されました。
Looper / Handlerは、BlockingQueueがそのままでは提供しないタスクの延期された実行のための機能も提供します。繰り返しますが、これはUIツールキットのコンテキストで重要です。
于 2013-02-14T14:04:40.850 に答える