美文网首页
handler是如何切换线程的

handler是如何切换线程的

作者: 小马奔腾走天下 | 来源:发表于2020-08-09 17:47 被阅读0次

handler是消息处理者,把消息放到messagequeue,并对消息进行处理。

首现 在一个线程中, new Handler() 必须先执行,Looper.prepare() 创先looper,

主线程没有手动调用Looper.prepare(),是因为 app启动时,在ActivityThread main主入口,执行了 Looper.prepareMainThread.   

public static void prepareMainLooper() {  ...  }

实际线程间切换,就是通过线程间共享变量实现的。

示例,两个线程 A线程   B线程

在A线程new handler(),在b线程调用这个handler发送消息,这个message发送到了,A线程中的 messageQueue里面,又回到了a线程中执行。

handler 持有Looper实例,looper有持有messageQueue实例,   handler 把message发送到了 当前持有的messageQueue实例中。这个messageQueue 在new handler之前,已经通过当前线程的Looper.prepare创建了。

相关文章

  • 2019-06-03 面试总结

    Android基础: Handler的机制 线程切换的具体原理?Handler和Looper的对应关系?如何在...

  • handler是如何切换线程的

    handler是消息处理者,把消息放到messagequeue,并对消息进行处理。 首现 在一个线程中, new ...

  • Handler总结

    Handler如何做到切换线程 1.Handler类里包含mLooper和mQueue;2.Looper类包含mQ...

  • 因为我对Handler的了解,居然直接给我加了5K?!

    1 Handler是什么? android提供的线程切换工具类。主要的作用是通过handler实现从子线程切换回主...

  • Android面试-Handler系列

    宝宝们,现在会说Handler流程已经out了,面试官不会止于此的,他会问handler是如何切换线程的呢?han...

  • Handler原理简单分析

    Handler是线程间切换的一种方式,Handler的运行机制主要就是Handler,Looper,Message...

  • Android消息机制

    Handler的作用:将一个任务切换到 Handler 所在的线程去执行。 Handler,MessageQueu...

  • Handler简析

    Handler是android用来线程切换的,主要的工作原理是Handler通过sendMessage发送一个Me...

  • Handler源码分析

    Handler主要用于线程切换,一个典型的应用场景是:子线程通过Handler更新主线程UI本文将从源码上来介绍H...

  • Android Handler之线程切换的原理(五)

    想要知道Handler切换线程的原理,还得知道Handler、Looper的工作流程

网友评论

      本文标题:handler是如何切换线程的

      本文链接:https://www.haomeiwen.com/subject/ucoldktx.html