Unterschied zwischen Android-Looper und Executor-Thread-Pool

8

Ich habe über Looper gelesen , und auch auf Executor Thread Pools und sie scheinen genau dasselbe zu tun ... oder fehle ich etwas?

    
user3430459 16.04.2014, 16:06
quelle

1 Antwort

13

A Looper verwaltet Aufgaben, die ein Thread ausführen wird. Es versetzt sie in eine Warteschlange und dann übernimmt der Thread die nächste Aufgabe in der Reihe. Ein Looper ist an einen bestimmten Thread gebunden.

Ein Executor kapselt die Verwaltung und Verteilung von Aufgaben an verschiedene Threads. Wenn Sie eine feste threadpool Größe von 1 haben, dann würde ich annehmen, dass es im Design einem Looper ähnlich ist, weil es nur die Arbeit für diesen einen Thread in die Warteschlange stellt. Wenn Sie einen Threadpool mit der Größe & gt; 1 dann wird es die Aufgabe dem nächsten Thread zur Verfügung zu stellen, um die Arbeit zu erledigen, oder mit anderen Worten verteilt es Aufgaben auf alle Threads.

bearbeiten: Empfohlene Lektüre: Ссылка

Executors sind flexibler. Für Android ist die einzige Zeit, in der ich wirklich Looper verwende, der Versuch, einen Handler dazu zu bringen, mit dem Hauptthread aus einem Hintergrundthread zu kommunizieren (was sogar in einem ExecutorService sein könnte). Zum Beispiel:

%Vor%     
trevor-e 16.04.2014, 16:24
quelle

Tags und Links