一、handlerThread产生背景
开启Thread子线程进行耗时操作
多次创建和销毁线程是很耗系统资源的
二、handlerThread是什么
Handler+thread+looper
是一个thread内部有looper
特点:
·HandlerThread本质上是一个线程类,它继承了Thread
·HandlerThread有自己的内部Looper对象,可以进行looper循环
·通过获取HandlerThread的looper对象传递给Handler对象,可以在handleMessage方法中执行异步任务
·优点是不会有堵塞,减少了对性能的消耗,缺点是不能同时进行多任务的处理,需要等待进行处理。处理效率较低。
·与线程池注重并发不同,HandlerThread是一个串行队列,HandlerThread背后只有一个线程。
三、handlerThread源码解析
继承自Thread,有自己的Looper
构造方法,传入name线程名称,priority线程优先级
初始Looper,包含synchronized同步代码块,设置线程优先级,notifyAll()通知getLooper()中的wait()方法