11

Can anyone explain why someone should use the Android Looper feature to create a "pipeline thread" instead of making a normal thread that pulls tasks from a BlockingQueue? On the surface, it seems like two ways to do the same thing.

4

1 回答 1

4

BlockingQueue 允许您拥有多个消费者和生产者,而 Looper 机制允许您拥有多个生产者但只有一个消费者。

因此,在 Looper 线程中,您一次只能执行一个任务(可运行)。创建了 looper 机制,因此您可以轻松地在 UI 线程(作为单线程运行,因此将其视为单线程使用者)上执行可运行对象(封装为消息的任务)

Looper/Handler 还提供延迟执行任务的功能,而 BlockingQueue 开箱即用。同样,这在 UI 工具包的上下文中很重要。

于 2013-02-14T14:04:40.850 回答