当前位置: 首页 > news >正文

HandlerThread源码阅读

HandlerThread源码,先看下注释:

    意思是,HandlerThread是一个拥有Looper的线程。 该looper对象可以用来创建Handler对象。

    看下构造方法:

    初始化线程名,以及线程优先级。该线程默认优先级为0

    其他方法:

    1、run方法

    线程启动后自动调用。

    步骤:

         (1)保存线程id

         (2)再调用Looper.prepare()方法为该线程实例化Looper对象

         (3)获取到looper对象后再调用notifyAll() 方法唤醒另一个在等待锁(即该thread对象)释放的线程。

         (4)设置线程优先级

         (5)调用onLooperPrepared方法在该线程执行任务前做一些设置工作。

         (6)调用Looper.loop()启动消息循环。

    2、getLooper方法

    获取这个HandlerThread的Looper对象。调用这个方法时,如果looper对象还没生成,该方法会短暂阻塞当前调用线程(86行的wait方法等待looper对象生成后唤醒)。 当该HandlerThread启动后,会调用notifyAll唤醒当前线程。

    3、getThreadHandler方法

    返回一个handler,用于处理该线程消息。这是一个隐藏api。实际需要启动该handlerThread后自己构造这个handler

    4、quit、quitSafely方法

    退出消息循环

    可以看出HandlerThread用于实现多线程任务处理,其封装了Looper初始化及其消息循环。 实际开发中,这样使用,代码如下。注意,需要先启动HandlerThread再获取其Looper对象,不然获取不到looper对象。

    另外,当需要终止handlerThread时记得调用quit或quitSafely。其中quitSafely会等消息都处理完再退出消息循环。

    http://www.dtcms.com/a/443468.html

    相关文章:

  1. 口碑好的番禺网站建设腾讯云自助建站
  2. 54所面经准备
  3. 宣讲家网站美丽乡村建设怎么创网站赚钱吗
  4. 如何建立小程序网站网站开发技术项目代码搜索
  5. C语言编译执行过程
  6. 网站长尾词排名做不上去响应式布局代码怎么写
  7. 【Linux】进程信号(1)
  8. 男女做那个的的视频网站常见的网页设计工具
  9. 做网站时管理员权限的页面wordpress标签前缀
  10. 建网站找哪个平台好呢专业简历制作网站有哪些
  11. 3.2.2 LangChain.js + LangGraph.js 实战
  12. ARL资产侦察灯塔系统一键部署教程(2025最新)
  13. 山东省环保厅官方网站建设项目网站建设好找工作吗
  14. ui界面设计说明范文网站排名优化价格
  15. SSM大学请假管理系统e9kl1(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  16. java基础-11 : 数据结构与算法
  17. 洛谷P1036 [NOIP 2002 普及组] 选数 题解
  18. 坂田做网站的公司业务员销售管理软件
  19. 网站服务器基本配置微信管理系统在哪
  20. C语言题目与练习解析:配套《数据在内存中的存储》
  21. Effective STL 第1条:慎重选择容器类型
  22. 网站做多长时间才有流量双线主机可以做彩票网站吗
  23. 外贸型网站建设公司福州最好的网站建设公司
  24. 规划网站建设的总体目标张家港网站设计制作早晨设计
  25. 安徽高端网站建设免费国外网站模板
  26. 国外做建筑平面图的网站网页如何发布
  27. 外贸网站如何推广做网站界面用的软件
  28. 英文建站系统广州购网站建设
  29. 手机版的学习网站ppt模板简约
  30. 企业法律平台网站建设方案中国机械加工网价位