开发中通过FeatrueTask来同步拿到异步执行的结果。但是FeatrueTask的get方法会阻塞线程。如果是在主线程调用get方法的话,就会阻塞主线程,导致主线程的handler的handleMessage被阻塞。

案例一:

通过FeatrueTask的get方法去等待AbsMediaEngine的init方法的异步回调结果。AbsMediaEngine的init里调用的SEService的new方法,成功连接的时候通过handler发送一个message。在message里去处理AbsMediaEngine的init的异步回调。问题出来了,handler的handleMessage被FeatrueTask的get方法阻塞住了。导致超时毕现。

解决办法:不使用handler了。直接在SEService的成功连接或者失败连接的时候回调AbsMediaEngine的init的异步回调。

案例二:

demo先绑定控件的服务,控件的服务在主线程去绑定钱包的服务。如果通过featrueTask去等待绑定钱包的服务的结果没有问题。有问题的是钱包绑定控件,控件在主线程去绑定钱包的服务,如果在主线程去等待绑定服务的返回,就会导致绑定服务卡住。通过过FeatrueTask去等待,通过do while去等待,通过CountDownLatch去等待都回卡住。目前无好的解决办法。要么到子线程去等,要么在主线程异步处理,要么提前把钱包服务绑定好。

主线程阻塞导致子线程里bindService或者handler的handleMessage被阻塞相关推荐

  1. Java多线程之----主线程会等待子线程结束再结束么,怎么让主线程等待子线程结束呐?

    首先给出结论: 主线程和子线程之间没有谁先谁后结束这种关联,它们只是各自负责自己的线程任务,如果该线程的任务结束了,该线程自然会结束运行. talk is cheap,show me the code ...

  2. [Java][Android] 多线程同步-主线程等待全部子线程完毕案例

    有时候我们会遇到这种问题:做一个大的事情能够被分解为做一系列相似的小的事情,而小的事情无非就是參数上有可能不同样而已! 此时,假设不使用线程,我们势必会浪费许多的时间来完毕整个大的事情.而使用线程的话 ...

  3. DLL内线程同步主线程研究(子线程代码放到主线程执行)

    DLL内线程同步主线程研究(子线程代码放到主线程执行) 我们在实际项目中经常会用到多线程编程,比如Socket编程等,在创建的线程内同步主线程一般使用Synchronize方法实现子线程操作放到主线程 ...

  4. java main 如何不退出_为什么java main主线程退出了子线程还能运行;golang main结束所有协程都被结束了...

    最近看golang main函数结束,所有协程都被结束了 结论是这样:A不是main程的情况下,在A程里开启B程,A程执行完,A程return之后,B程不受影响,不会挂掉.所有子协程与main程同级的 ...

  5. 主线程和子线程的关系(讨论主线程结束,子线程是否要回收)

    主线程和子线程,在操作系统里面其实是一样的,没有本质区别.至于主线程结束,子线程是否要回收,下面有两种比较特殊的情况. 第一种: 主线程退出了,子线程还可以执行. 主要是因为pthread_exit函 ...

  6. [转]Java中主线程如何捕获子线程抛出的异常

    这么来看待这个问题.首先明确线程代码的边界.其实很简单,Runnable接口的run方法所界定的边界就可以看作是线程代码的边界.Runnable接口中run方法原型如下:     <<   ...

  7. Java中主线程如何捕获子线程抛出的异常

    Java中主线程如何捕获子线程抛出的异常 参考文章: (1)Java中主线程如何捕获子线程抛出的异常 (2)https://www.cnblogs.com/jpfss/p/10272885.html ...

  8. 【Android 异步操作】Android 线程切换 ( 判定当前线程是否是主线程 | 子线程中执行主线程方法 | 主线程中执行子线程方法 )

    文章目录 一.判定当前线程是否是主线程 二.子线程中执行主线程方法 三.主线程中执行子线程方法 一.判定当前线程是否是主线程 在 Android 中 , 如果要判定当前线程是否是主线程 , 可以使用如 ...

  9. 在主线程中为子线程解锁_在XP中为Google Chrome启用Vista黑色风格主题

    在主线程中为子线程解锁 If you've seen the screenshots of Google Chrome on XP vs Vista, you've probably noticed ...

最新文章

  1. 800 名科学家联名主张废除 p 值!斯坦福教授直言,没有p值,期刊将充斥“无可辩驳的废话”!...
  2. python3 字符串 转 ascii码
  3. 机器学习工作流程第一步:如何用Python做数据准备?
  4. 使用DotNetCharting控件生成报表统计图总结
  5. 在项目中遇到的一些bug
  6. 编程之美-计算字符串的相似度方法整理
  7. Spring Boot和JSP
  8. 菜鸟读jQuery 2.0.3 源码分析系列(1)
  9. Hadoop之HDFS应用
  10. 小算法小心情:背包问题就是陪你看花开向阳
  11. 系统自带不起眼但很强杀毒工具
  12. 假如正则从来没来过,我们该如何去匹配一个字符串?
  13. 【运维】从实战掌握自动化运维工具Ansible
  14. 兄弟连Linux学习笔记
  15. 木子-后端-Java小知识点
  16. HTML5 table表格合并单元格和合并边框
  17. cala中隐式转换(implicit conversion)的优先顺序
  18. 推荐20个优秀企业技术博客
  19. npm更新包(全局单个,项目单个,全局所有,项目生产环境,项目开发环境)
  20. Teigha4.0加载显示Dwg文件

热门文章

  1. 酷播云视频二维码的使用教程
  2. 孙卫琴的《精通JPA与Hibernate》的读书笔记:用orphanRemoval属性映射父子关系
  3. 论文阅读|目标检测之PSS:更简单有效的End-to-End检测
  4. 企业大数据CDH管理平台搭建方案
  5. 模数转换器ADS1118 四通道采集电压 stm32f103
  6. 干货 | 为了让携程上万员工上好网,他们做了这些
  7. BI-数据智能-MateBase
  8. 字符分割时对粘连字符的处理方法
  9. response对象常用方法
  10. 解决Chrome浏览器不能访问https网站的问题 阿星小栈