线程优化

作者: xyzkaye | 来源:发表于2023-02-24 21:09 被阅读0次
线程调度机制

线程调度机制
• 分时调度模型:所有的线程轮流获得cpu使用权,平均分配每个线程占用的cpu时间
• 抢占式调度模型:优先让可运行池中的优先级高的线程占用cpu,优先级相同随机选择一个线程

线程优先级(nice):
Android可以通过android.os.Process.setThreadPriority(int)设置线程优先级,参数范围20~24,数值越小优先级越高,0位默认的优先级
默认情况下,新创建的线程的优先级默认与母线程一致
线程分组 (cgroup):
Android系统会根据当前运行的可见的程序和不可见的后台程序对线程进行归类

异步方式

异步方式
• Thread: 直接创建一个线程
• AsyncTask:为U线程与工作线程之间进行快速的切换提供一种简单便捷的机制。适用于当下立即需要启动,但是异步执行的生命周期短暂的使用场景
1:默认线性调度执行,会阻塞后续任务
2:可以指定线程池并发调度
• HandlerThread:为某些回调方法或者等待某些任务的执行设一个专属的线程,并提供线程任务的调度机制(线程不断的从任务队列获取任务去执行,如采集图片视频等数据)
• ThreadPool:把任务分解成不同的单元,分发到各个不同的线上,进行同时并发处理
• IntentService: 适合于执行由U触发的后台Service任务,并可以把后台任务执行的情况通过一定的机制反馈给UI 。继承自普通service,内部使用了HandlerThread,在onHandlerintent的回调里面处理任务,也不受主页面生命周期影响。
• Loaders: Android系统提供了LoaderManager

线程优化
  • 线程指定线程名,对线程分组便于问题排查
  • 合理指定线程优先级
  • 采用线程池复用线程
  • 合适的场景选择合适的异步方式
  • 控制整个应用总线程数量,应用各个模块复用线程
  • 不再使用的HandlerThread需要退出
  • 不要直接使用创建线程,应该采用线程池

相关文章

  • 【基础】练习册52-Python3_优化线程

    优化线程 代码如下: #coding=utf-8#优化线程:对threads.py多线程的优化from time ...

  • Android性能优化(五)线程优化及优化建议

    线程优化 线程优化的思想是采用线程池,避免程序中存在大量的Thread,线程池可以重用内部的线程,从而避免了线程的...

  • 内存优化

    内存优化、UI优化(布局优化、会只优化)、速度优化(线程优化、网络优化)、启动优化、电量优化 内存优化 内存抖动:...

  • Android进阶之性能优化

    一、性能优化分类 布局优化 绘制优化 内存泄漏优化 响应速度优化 ListView优化 Bitmap优化 线程优化...

  • Android性能优化

    Android性能优化包括布局优化、绘制优化、内存优化、线程优化、响应速度优化、Bitmap优化和ListView...

  • iOS性能优化

    1、参考文章 TableView优化 FPS监测 //启动优化、内存优化、卡顿优化、线程优化、电量优化、包体积...

  • Spring Cloud 学习(15) --- Hystrix

    Hystrix 的优化可以从线程、请求缓存、线程传递与并发、命令注解、Collapser 请求合并 等方面入手优化...

  • Android性能优化

    目录 1)布局优化 2)绘制优化 3)ListView和Bitmap优化 4)线程优化 5)App启动优化 6)内...

  • Android性能优化

    优化角度 RAM方面 内存泄露优化 避免OOM APP启动优化 线程优化 Res方面 apk瘦身 布局优化 绘制优...

  • 单元测试

    单元测试 线程 性能优化

网友评论

    本文标题:线程优化

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