您的位置:首页 > 职场人生

从handler机制看多线程通讯

2016-04-08 17:12 316 查看

从handler机制看多线程通讯

android上的handler机制

android.os.Handler通过这个常见的类,去学习更深的知识。

1. handler机制

做过android开发的程序员肯定都清楚这个叫做handler的玩意,所谓只能在主线程做UI操作就是靠它了。

2. handler机制详解

handler机制是android中实现的多线程通讯机制,基于生产消费者模型,它主要由Handler,MessageQueue,Looper几个关键类实现。

* Looper类作为核心类,一对一绑定线程,Looper对象所绑定的线程,作为消费者线程(代表性质的消费者线程就是主现场即UI线程)。

* Handler类作为起到事件处理机的核心,通过一系列post和send方法向Looper中的MessageQueue添加事件,Handler通过构造方法与Looper进行绑定,执行Handler的post和send方法的线程作为生产者线程。

* MessageQueue类作为消息队列储存由Message信息,每个Looper对象对应一个消息队列。

总结一下,每个线程对应一个Looper对象,Handler通过构造方法绑定Looper,使用post和send向与Handler绑定的Looper对象中的MessageQueue添加事件,Looper从MessageQueue中获取事件,交给绑定的Handler处理。

* 在内存中,对象对所有线程是共享的。

* Looper通过ThreadLocal储存为线程对象,实现了每个线程对应一个Looper实例。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息