当前标签 / 消息队列 / 总共1篇

HandlerThread详解

概述

在日常开发中,我们经常会通过 new Thread(){}.start(); 的方式来开辟一个新的线程。但是如果我们想要多次执行任务的时候,通过这种方式我就会创建多个线程,这样会使我们的程序运行起来越来越慢。通常情况下我会采用 HandlerThread 的方式来开辟一个线程,那么 HandlerThread 是什么呢?今天我们来介绍一下 HandlerThread。

正文

HandlerThread 是 Thread 的一个子类,HandlerThread 自带 Looper 使他可以通过消息队列来重复使用当前线程,节省系统资源开销。这是它的优点也是缺点,每一个任务都将以队列的方式逐个被执行到,一旦队列中有某个任务执行时间过长,那么就会导致后续的任务都会被延迟处理。它的使用也比较简单。

HandlerThread thread = new HandlerThread("MyHandlerThread");
thread.start();

mHandler = new Handler(thread.getLooper());
mHandler.post(new Runnable(){
    //...
});

接下来我们写一个完整的 Demo,然后在分析一下它的实现原理。

阅读更多