android开发中的一些思考
来源:互联网 发布:有源码怎么建站 编辑:程序博客网 时间:2024/06/05 19:14
1.异步线程
问: 我们把耗时任务放在异步线程中执行,避免UI线程卡顿。假设是一核心CPU,开启三个线程。CPU以叶片轮询方式在线程中切换,子线程中睡眠10秒。打印log发现3个线程的优先级一样,获取到执行的机会也一样。UI线程必须16ms完成绘制任务,那么存不存在CPU在切换过程中而造成的卡顿现象?
答:(经过现阶段水平思考,)存在。并行执行任务只是增加了UI线程的执行机会,不至于阻碍UI线程的进行。下面两个示例可以侧面应证。
- 比如让UI线程直接睡眠10s,那么必定会卡顿或者ANR。这就是开启子线程执行异步任务的意义。这从某种程度也可以说明手机CPU核心数越多越好。
- 开启n多线程,耗尽CPU资源,势必会造成UI线程卡顿,原因就是UI线程获得的执行机会少了,这也就是使用线程池的意义。
0 0
- android开发中的一些思考
- 我们在项目开发中的一些思考
- Android开发架构的一些思考
- 关于android开发中的一点思考
- 工作中的一些思考
- WebGame开发过程中的一些思考和总结
- Android开发中的一些坑
- Android开发中的一些经验总结
- Android开发中的一些坑
- Android 开发中的一些建议
- Android 开发中的一些整理
- Android开发中关于获取当前Activity的一些思考
- 开发中的一点思考
- 开发中的思考
- 找工作过程中的一些思考
- 程序开发的一些思考
- Android开发中的一些技巧记录
- Android 开发中的一些小技巧
- Codeforces 645B Mischievous Mess Makers 【逆序对】
- hustoj——练习赛i题
- 【线段树】【树】【网络流】[UOJ#77]A+B Problem
- ARMv8 架构与指令集.学习笔记
- Android Scroll分析
- android开发中的一些思考
- JAVA学习之数据类型的使用
- Unity3D小小小经验篇——Canvas
- cocos2d 释放资源 总结
- 参数化查询 '(@UserName nvarchar(1),@PassWord nvarchar(4000))Select * from Us未提供“@PassWord”参数
- 初学者学习 - Unity中的热更新 - Lua和C#通信
- (2)iText生成PDF
- DIV常用样式
- 【蓝桥杯】棋盘上的麦子