从handler机制看多线程通讯

从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实例。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值