在本例中,我们可以按照如下规则提交任务
  post 提交优先级一般的任务
  postAtFrontOfQueue 将优先级较高的任务加入到队列前端
  postAtTime 指定时间提交任务
  postDelayed 延后提交优先级较低的任务
  上面的轻量级任务处理器利用HandlerThread的单一线程 + 任务队列的形式,可以处理类似本地IO(文件或数据库读取)的轻量级任务。在具体的处理场景下,可以参考如下做法:
  对于本地IO读取,并显示到界面,建议使用postAtFrontOfQueue
  对于本地IO写入,不需要通知界面,建议使用postDelayed
  一般操作,可以使用post
  线程优先级调整
  在Android应用中,将耗时任务放入异步线程是一个不错的选择,那么为异步线程调整应有的优先级则是一件锦上添花的事情。众所周知,线程的并行通过CPU的时间片切换实现,对线程优先级调整,主要的策略是降低异步线程的优先级,从而使得主线程获得更多的CPU资源。
  Android中的线程优先级和Linux系统进程优先级有些类似,其值都是从-20至19。其中Android中,开发者可以控制的优先级有:
  THREAD_PRIORITY_DEFAULT,默认的线程优先级,值为0
  THREAD_PRIORITY_LOWEST,低的线程级别,值为19
  THREAD_PRIORITY_BACKGROUND 后台线程建议设置这个优先级,值为10
  THREAD_PRIORITY_MORE_FAVORABLE 相对THREAD_PRIORITY_DEFAULT稍微优先,值为-1
  THREAD_PRIORITY_LESS_FAVORABLE 相对THREAD_PRIORITY_DEFAULT稍微落后一些,值为1
  为线程设置优先级也比较简单,通用的做法是在run方法体的开始部分加入下列代码
  android.os.Process.setThreadPriority(priority);
  通常设置优先级的规则如下:
  一般的工作者线程,设置成THREAD_PRIORITY_BACKGROUND
  对于优先级很低的线程,可以设置THREAD_PRIORITY_LOWEST
  其他特殊需求,视业务应用具体的优先级
  总结
  在Android中工作者线程如此普遍,然而潜在的问题也不可避免,建议在开发者使用工作者线程时,从工作者线程的数量和优先级等方面进行审视,做到较为合理的使用。