美文网首页
10 异步3-HandlerThread

10 异步3-HandlerThread

作者: 一枝妖孽 | 来源:发表于2018-06-05 21:34 被阅读0次

    1)handlerThread是什么
    2)handlerThread源码解析

    1、handlerThread产生背景
    在开发中,有时候需要,开启Thread子线程进行耗时操作;
    多次创建和销毁线程是很耗系统资源的;
    为了解决这个问题,引入handlerThread;

    2、handlerThread是什么
    HandlerThread继承自Thread,因此HandlerThread其实就是一个线程;
    线程开启时也就是run方法运行起来后,线程同时创建一个含有消息队列的looper,并对外提供自己这个对象的get方法,这就是和普通的Thread不一样的地方
    【handler+thread+looper】
    本质上是一个thread,内部有一个looper

    3、handlerThread的特点
    1)handlerThread本质上是一个线程类,它继承了Thread;
    2)handlerThread有自己的内部Looper对象,可以进行looper循环
    3)通过获取HandlerThread的Looper对象传递给Handler对象,可以在HandlerMessage方法中执行异步任务
    4)优点是不会有阻塞,减少了对性能的消耗;
    缺点是不能同时进行多任务的处理,需要等待进行处理。
    处理效率较低
    5)与线程池注重并发不同,HandlerThread是一个串行队列,HandlerThread背后只有一个线程

    4、简单的流程
    创建handlerThread传入线程名称
    调用 handlerThread.run()
    调用 getLooper()
    根据Looper获取Handler
    之后做自己想要的操作

    5、handlerThread源码解析
    【自己看下,源码不多】

    相关文章

      网友评论

          本文标题:10 异步3-HandlerThread

          本文链接:https://www.haomeiwen.com/subject/ukomsftx.html