场景1

安卓基于事件驱动,每个事件都会转化成消息对象即Message对象,交与handler处理。为了方便管理,每个线程都有一个消息队列MessageQueue来让Message排队等待处理。
Message是依靠链表进行维护每个message对象都会有next字段记录下一个message对象。
用排队打饭来举例:message对象就是拿着饭盒的学生,它们都有待处理的事件,打饭阿姨就是Handler,用来处理打饭事件。那为什么要记录下一个人是谁呢?

9414344-30d6f3a664c8bea9.jpg
Message1.jpg
场景2

如果一个年级1000人,每个人都排队,相当于程序频繁创建对象,吃完了就走了,对象又被销毁,这样频繁的创建销毁会耗费性能,频繁GC。安卓中使用享元模式,就像只找几个班干部,为班级人民服务。吃完了别走,就你们几个在那排好队,有同学需要打饭,第一个人就去帮那个同学打饭,完事后继续站到队列末尾。这个队列便是MessageQueue,安卓中默认有50个长度单位并且用链表的形式实现。使用已经存在的对象就不用频繁的创建与销毁了,这就是设计模式:享元模式的核心。

9414344-2ef52d6f191932df.jpg
Message2.jpg

后记、

1.声明:

[1]本文由张风捷特烈原创,转载请注明
[2]欢迎广大编程爱好者共同交流
[3]个人能力有限,如有不正之处欢迎大家批评指证,必定虚心改正
[4]你的喜欢与支持将是我最大的动力

2.连接传送门:

更多安卓技术欢迎访问:安卓技术栈
我的github地址:欢迎star
简书首发,腾讯云+社区同步更新
张风捷特烈个人网站,编程笔记请访问:http://www.toly1994.com

3.联系我

QQ:1981462002
邮箱:1981462002@qq.com
微信:zdl1994328

4.欢迎关注我的微信公众号,最新精彩文章,及时送达:
9414344-c474349cd3bd4b82.jpg
公众号.jpg
posted on 2018-08-30 09:16  张风捷特烈  阅读(128)  评论(0编辑  收藏  举报