Android Looper vs BlockingQueue?

jfr*_*z42 10 android blockingqueue looper

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

num*_*ati 4

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

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

Looper/Handler 还提供了任务延迟执行的功能,这是 BlockingQueue 开箱即用所不具备的。这在 UI 工具包的上下文中也很重要。