如何通过C 11语言实现Android系统中的Handler机制?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2010个文字,预计阅读时间需要9分钟。
封面出自原创:板栗懒得很,背景很有趣+程序作为系统的基本资源,很多读者都用得到。一般情况下,我们会直接开启一个线程做一些耗时操作,完成后让线程自动结束,资源被系统回收。
封面出自:板栗懒得很背景
线程作为系统的基础资源,相信大多数读者都有使用到。一般情况下我们会直接开一个线程做一些耗时操作,处理完之后让线程自动结束,资源被系统回收。这种简单粗暴的方法不少读者、甚至一些大厂的APP都在用。以Java语言为例,我们可以直接new一个Thread对象,然后覆盖run方法,最后调一下start方法便可以成功运行一个线程。如果我们每次异步做一些耗时处理都单独开启一个线程,比如异步加载网络图片这种高并发操作,每张图片都开一个线程的话,必然会造成线程资源的浪费,而且也没有很好的方法去处理跨线程通讯的问题。由于语言层面的低成本导致系统的线程资源被滥用,已经成为了一个很普遍的现象。
new Thread(){ @Override public void run() { //Do somethings } }.start()
Handler
Handler机制通过开启一个子线程,并进入死循环,不停消费其它线程发送过来的消息,从而达到跨线程通讯的目的。Handler主要用于跨线程通讯,但同时也能在一定程度上复用线程,是一种比较理想的线程使用方式。
本文共计2010个文字,预计阅读时间需要9分钟。
封面出自原创:板栗懒得很,背景很有趣+程序作为系统的基本资源,很多读者都用得到。一般情况下,我们会直接开启一个线程做一些耗时操作,完成后让线程自动结束,资源被系统回收。
封面出自:板栗懒得很背景
线程作为系统的基础资源,相信大多数读者都有使用到。一般情况下我们会直接开一个线程做一些耗时操作,处理完之后让线程自动结束,资源被系统回收。这种简单粗暴的方法不少读者、甚至一些大厂的APP都在用。以Java语言为例,我们可以直接new一个Thread对象,然后覆盖run方法,最后调一下start方法便可以成功运行一个线程。如果我们每次异步做一些耗时处理都单独开启一个线程,比如异步加载网络图片这种高并发操作,每张图片都开一个线程的话,必然会造成线程资源的浪费,而且也没有很好的方法去处理跨线程通讯的问题。由于语言层面的低成本导致系统的线程资源被滥用,已经成为了一个很普遍的现象。
new Thread(){ @Override public void run() { //Do somethings } }.start()
Handler
Handler机制通过开启一个子线程,并进入死循环,不停消费其它线程发送过来的消息,从而达到跨线程通讯的目的。Handler主要用于跨线程通讯,但同时也能在一定程度上复用线程,是一种比较理想的线程使用方式。

