Android Looper vs BlockingQueue?

9

Kann jemand erklären, warum jemand die Android-Looper-Funktion verwenden sollte, um einen "Pipeline-Thread" zu erstellen, anstatt einen normalen Thread zu erstellen, der Aufgaben aus einer BlockingQueue zieht? Auf der Oberfläche scheint es zwei Möglichkeiten zu geben, das Gleiche zu tun.

    
jfritz42 09.12.2011, 00:07
quelle

1 Antwort

4

BlockingQueue ermöglicht es Ihnen, mehrere Konsumenten und Produzenten zu haben, während der Looper-Mechanismus Ihnen mehrere Produzenten, aber nur einen Konsumenten ermöglicht.

Im Looper-Thread wird also immer nur eine Aufgabe ausgeführt (runnable). Der Looper-Mechanismus wurde erstellt, damit Sie Runnables (Aufgaben, die als Nachrichten gekapselt sind) auf dem UI-Thread (der als einzelner Thread ausgeführt wird, also als Einzel-Thread-Consumer) einfach ausführen können.

Looper / Handler bietet auch Funktionen für die verzögerte Ausführung von Aufgaben, die nicht standardmäßig von BlockingQueue ausgeführt werden. Auch dies ist wichtig im Zusammenhang mit UI-Toolkits.

    
numan salati 14.02.2013, 14:04
quelle

Tags und Links