将相同的looper与不同的线程相关联

时间:2014-09-11 07:04:47

标签: android multithreading android-handler android-looper

在我的应用程序中,我想创建在单个队列上工作的多个线程。要创建队列,我知道我需要调用Looper.prepare()

我希望我创建的所有其他线程都应该与我使用第一个线程创建的looper相关联,我该如何实现?

1 个答案:

答案 0 :(得分:1)

使用java.util.concurrent包中的一个Java线程安全队列类而不是Looper来实现此目标。这是更常见的做法。

在线程之间共享队列并将任务作为一个线程的队列条目发布,然后您可以从另一个线程获取此条目。使用BlockingQueue,你可以轻松地完成它 - 在一个线程中只调用take(),它将阻塞线程,直到另一个线程将()一些条目放入队列。就是这样。

Producer Consumer pattern example

BlockingQueueConcurrentLinkedQueue

About BlockingQueue

enter image description here