2011-12-09 48 views
9

任何人都可以解释为什么有人应该使用Android Looper功能来创建一个“管道线程”,而不是制作一个普通线程来从BlockingQueue中提取任务吗?从表面上看,似乎有两种方法可以做同样的事情。Android Looper vs BlockingQueue?

回答

4

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

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

Looper/Handler还提供了延迟BlockingQueue开箱的任务没有执行。在UI工具箱的情况下,这一点也很重要。