主线程阻塞导致子线程里bindService或者handler的handleMessage被阻塞
开发中通过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被阻塞相关推荐
- Java多线程之----主线程会等待子线程结束再结束么,怎么让主线程等待子线程结束呐?
首先给出结论: 主线程和子线程之间没有谁先谁后结束这种关联,它们只是各自负责自己的线程任务,如果该线程的任务结束了,该线程自然会结束运行. talk is cheap,show me the code ...
- [Java][Android] 多线程同步-主线程等待全部子线程完毕案例
有时候我们会遇到这种问题:做一个大的事情能够被分解为做一系列相似的小的事情,而小的事情无非就是參数上有可能不同样而已! 此时,假设不使用线程,我们势必会浪费许多的时间来完毕整个大的事情.而使用线程的话 ...
- DLL内线程同步主线程研究(子线程代码放到主线程执行)
DLL内线程同步主线程研究(子线程代码放到主线程执行) 我们在实际项目中经常会用到多线程编程,比如Socket编程等,在创建的线程内同步主线程一般使用Synchronize方法实现子线程操作放到主线程 ...
- java main 如何不退出_为什么java main主线程退出了子线程还能运行;golang main结束所有协程都被结束了...
最近看golang main函数结束,所有协程都被结束了 结论是这样:A不是main程的情况下,在A程里开启B程,A程执行完,A程return之后,B程不受影响,不会挂掉.所有子协程与main程同级的 ...
- 主线程和子线程的关系(讨论主线程结束,子线程是否要回收)
主线程和子线程,在操作系统里面其实是一样的,没有本质区别.至于主线程结束,子线程是否要回收,下面有两种比较特殊的情况. 第一种: 主线程退出了,子线程还可以执行. 主要是因为pthread_exit函 ...
- [转]Java中主线程如何捕获子线程抛出的异常
这么来看待这个问题.首先明确线程代码的边界.其实很简单,Runnable接口的run方法所界定的边界就可以看作是线程代码的边界.Runnable接口中run方法原型如下: << ...
- Java中主线程如何捕获子线程抛出的异常
Java中主线程如何捕获子线程抛出的异常 参考文章: (1)Java中主线程如何捕获子线程抛出的异常 (2)https://www.cnblogs.com/jpfss/p/10272885.html ...
- 【Android 异步操作】Android 线程切换 ( 判定当前线程是否是主线程 | 子线程中执行主线程方法 | 主线程中执行子线程方法 )
文章目录 一.判定当前线程是否是主线程 二.子线程中执行主线程方法 三.主线程中执行子线程方法 一.判定当前线程是否是主线程 在 Android 中 , 如果要判定当前线程是否是主线程 , 可以使用如 ...
- 在主线程中为子线程解锁_在XP中为Google Chrome启用Vista黑色风格主题
在主线程中为子线程解锁 If you've seen the screenshots of Google Chrome on XP vs Vista, you've probably noticed ...
最新文章
- 800 名科学家联名主张废除 p 值!斯坦福教授直言,没有p值,期刊将充斥“无可辩驳的废话”!...
- python3 字符串 转 ascii码
- 机器学习工作流程第一步:如何用Python做数据准备?
- 使用DotNetCharting控件生成报表统计图总结
- 在项目中遇到的一些bug
- 编程之美-计算字符串的相似度方法整理
- Spring Boot和JSP
- 菜鸟读jQuery 2.0.3 源码分析系列(1)
- Hadoop之HDFS应用
- 小算法小心情:背包问题就是陪你看花开向阳
- 系统自带不起眼但很强杀毒工具
- 假如正则从来没来过,我们该如何去匹配一个字符串?
- 【运维】从实战掌握自动化运维工具Ansible
- 兄弟连Linux学习笔记
- 木子-后端-Java小知识点
- HTML5 table表格合并单元格和合并边框
- cala中隐式转换(implicit conversion)的优先顺序
- 推荐20个优秀企业技术博客
- npm更新包(全局单个,项目单个,全局所有,项目生产环境,项目开发环境)
- Teigha4.0加载显示Dwg文件