2011-12-09 17 views
9

Czy ktoś może wyjaśnić, dlaczego ktoś powinien użyć funkcji programu Android Looper, aby utworzyć "wątek potoku" zamiast zwykłego wątku, który ściąga zadania z BlockingQueue? Na pierwszy rzut oka wydaje się, że robią to na dwa sposoby.Android Looper vs BlockingQueue?

Odpowiedz

4

BlockingQueue pozwala mieć wielu klientów i producentów, podczas gdy mechanizm Looper pozwala mieć wielu producentów, ale tylko jednego konsumenta.

W wątku Looper wykonujesz tylko jedno zadanie (działające) na raz. Mechanizm chwytacza został utworzony, dzięki czemu można łatwo uruchamiać runnables (zadania enkapsulowane jako komunikaty) w wątku UI (który działa jako pojedynczy wątek, tak myślę o nim jako o pojedynczym wątku).

Looper/Handler zapewnia również funkcjonalność dla odroczonego wykonanie zadań, które BlockingQueue po wyjęciu z pudełka nie są. Ponownie jest to ważne w kontekście zestawów narzędzi interfejsu użytkownika.

Powiązane problemy