我需要运行一堆异步任务,但优先级最高的任务是最后添加的任务。
我可以使用LIFO(后进先出)堆栈式Handler
Android 吗?
如果没有,我的替代实现是让每个任务从Stack
拉出要处理的项目。但是这会导致锁定问题,因为堆栈是动态填充的。有更好的方法吗?
答案 0 :(得分:1)
您可以从头开始轻松实现从LinkedBlockingDeque提供的线程。用户可以将任务放在双端队列的两侧。
答案 1 :(得分:1)
创建一个主题。在该线程中,创建一个LinkedBlockingDeque。添加任务时,将其添加到出列的头部。在线程中,poll()就可以了(当一个存在时会移除头部)。类本身将处理所有锁定。