一 . HandlerThread产生背景:

 开启Thread子线程进行耗时操作. 多次创建和销毁线程是很耗系统资源的.

HandlerThread = handler+thread+looper.


二 . HandlerThread的特点

  1. HandlerThread本质上是一个线程类,它继承了Thread.
  2. HandlerThread有自己的内部Looper对象,可以进行looper循环.
  3. 通过获取HanderThread的looper对象传递给Handler对象,可以在handlerMessage方法中执行异步任务.
  4. 有点是不会有堵塞,减少了对性能的消耗,缺点是不能同时进行多任务的处理,需要等待进行处理,处理效率较低.

  5. 与线程池注重并发不同,HandlerThread是一个串行队列,HandlerThread背后只有一个线程.

通过使用HandlerThread内部的looper,让那些没有UI线程looper的进程也可以使用looper, HanlderThreader就是提供一个脱离UI线程的loopr.


三 .源码

在getLooper()方法执行时,如果当前的looper还没有创建好,那么就继续等待,知道looper创建好后继续执行.


四 . 例子:

HandlerThread提供给RILSender 一个looper,后面 RILSender对象发送的消息都在RILSender中进行处理.HandlerThread创建对象后要必须调用start才能起作用.

results matching ""

    No results matching ""