线程和线程池 -- HandlerThread

一、概念

HandlerThread继承了Thread,它是一种可以使用Handler的Thread,它在run方法中通过Looper.prepare()创建消息队列,并通过Looper.loop()来开启消息循环,这样在实际的使用中就允许在HandlerThread中创建Handler了。

二、使用

普通Thread主要用于在run方法中执行一个耗时任务,而HandlerThread在内部创建了消息队列,外界需要通过Handler的消息方式来通知HandlerThread执行一个具体的任务。

由于HandlerThread的run方法是一个无限循环,因此当明确不需要再使用HandlerThread时,可以通过它的quit或者quitSafely方法来终止线程的执行。

三、例子

HandlerThread mHandlerThread = new HandlerThread("handlerThreadTest");
Handler mHandler;
private void handlerThreadTest() {
    mHandlerThread.start();
    mHandler = new Handler(mHandlerThread.getLooper(), new Handler.Callback() {
        @Override
        public boolean handleMessage(Message msg) {
            Log.d(TAG, "zwm, handleMessage: " + msg.what);
            return false;
        }
    });
    mHandler.sendEmptyMessage(0);
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第5章 多线程编程 5.1 线程基础 5.1.1 如何创建线程 在java要创建线程,一般有==两种方式==:1)...
    AndroidMaster阅读 5,785评论 0 11
  • Android Handler机制系列文章整体内容如下: Android Handler机制1之ThreadAnd...
    隔壁老李头阅读 12,575评论 8 57
  • 今天leo主要总结线程方面的,分为以下几个知识点: • 认识线程 • 线程的基本用法 • 线程同步 • 子线程...
    SingleoD阅读 13,114评论 25 77
  • 把开题报告汇总好给陈老师发过去,她每次都第一时间改好重新发过来...十点多发了第二次大家修改的,老师修改到现在十二...
    达浪打啦阅读 775评论 0 0
  • 活了30多年,我见到太多人不懂得爱自己,总是为了迎合别人或者外界委屈自己,还自以为会为人处世。刘墉在文中提到有些太...
    drunkfufu阅读 3,987评论 0 1

友情链接更多精彩内容