Android中的LIFO Handler

时间:2017-07-05 20:18:12

标签: android multithreading asynchronous

我需要运行一堆异步任务,但优先级最高的任务是最后添加的任务。

我可以使用LIFO(后进先出)堆栈式Handler Android 吗?

如果没有,我的替代实现是让每个任务从Stack拉出要处理的项目。但是这会导致锁定问题,因为堆栈是动态填充的。有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

您可以从头开始轻松实现从LinkedBlockingDeque提供的线程。用户可以将任务放在双端队列的两侧。

答案 1 :(得分:1)

创建一个主题。在该线程中,创建一个LinkedBlockingDeque。添加任务时,将其添加到出列的头部。在线程中,poll()就可以了(当一个存在时会移除头部)。类本身将处理所有锁定。