Android使用ThreadLocal+PriorityQueue构建队列

Android中使用了很多消息队列,如Intent,Handler,BroadcastReceiver等。使用消息队列的目的是防止线程阻塞并且将不能及时执行的任务缓存起来,从而提高系统的运行效率。

为了使得消息队列具有全局性,并且重用性,建议定义在Application或者单例对象的类中

public class QApplication extends Application{

   public static final ThreadLocal<PriorityQueue<TaskMessage>> massegQueue = new ThreadLocal<PriorityQueue<TaskMessage>>();
    @Override
    public void onCreate() {
	super.onCreate();
    }
}

TaskMessage是一个任务消息,例如如下

public class TaskMessage implements Serilizable
{
    private long id;
    private String name;
    private String  type;
}

ThreadLocal是一个处理高并发问题的以线程为作用域的类。

在Android中,消息的队列使用了ThreadLocal,读者可自行查看源码。

PriorityQueue是一个可以调整优先级的消息队列

---------------------------------------------------------------------------------------------------------


对于这种高并发的队列使用,首先得了解ThreadLocal,PriorityQueue在这里不多讲。

使用这种队列的好处是,n个线程中可以出现n个消息队列,这个Handler类似,另外ThreadLocal是静态的,但这并不会影响同步问题,因为它是以线程为作用域。

对于ThreadLocal,可参见下面的文章。

Java中高并发任务中的ThreadLocal的用法解析





你可能感兴趣的:(Android使用ThreadLocal+PriorityQueue构建队列)