第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

【學(xué)習(xí)打卡】第7天 App 線程優(yōu)化

標(biāo)簽:
Android

课程名称:Top团队大牛带你玩转Android性能分析与优化
课程章节:App性能概览与平台化实践
主讲老师:随风绽放

课程内容

1.Android 线程调度原理剖析

线程调度的原理是,在任一时刻,只有一个线程占用 CPU,只有一个线程是处于运行状态的。多线程并发实际上是轮流获取 CPU 的使用权。JVM 按照特定机制来分配 CPU 的使用权。

常见的线程调度模型包括:

  • 分时调度模型,线程轮流获取 CPU 的使用权,每个线程均分 CPU 的时间。
  • 抢占式调度模型,优先级高的线程获取更多的 CPU 的使用权,JVM 就是采用这种调度策略。

Android 的线程调度有两个重要的值:

  • nice 值,在 Process 类中定义的,nice 值越小,优先级越高,默认值是 THREAD_PRIORITY_DEFAULT。
  • cgroup,是更严格的群组调度策略,保证前台线程可以获取更多的 CPU 使用权。

2.Android 异步方式汇总

Android 中常用的异步方式包括以下几种,每种异步方式都有适合自己的使用场景。

  • Thread,最简单、常见的异步方式,不易复用,频繁的创建和销毁会导致开销增大,不适合复杂的场景。
  • HandlerThread,自带消息循环的线程,串行执行,长时间运行时,会不断地从队列中获取任务。
  • IntentService,继承自 Service,在内部创建了 HandlerThread,异步方式,不会占用主线程,优先级较高,不容易被系统 Kill 掉。
  • AsyncTask,是 Android 提供的工具类,无需自己处理线程的切换,在使用时需要注意版本不一致导致的兼容问题。
  • 线程池,Java 提供的线程池,容易复用,减小因为线程的频繁创建和销毁引起的系统开销。功能强大,可以执行定时任务、有任务队列和并发数控制等功能。
  • RxJava,由强大的 Scheduler 集合提供,对不同的任务类型进行了区分、比如 IO 密集型任务、Computation 计算型任务等;

3.Android 线程优化实战

在 Android 中使用线程要遵循的准则:

  1. 严禁使用new Thread,使用方式比较粗放,与其他异步方式相比,没有优势。
  2. 提供基础线程池供各个业务线使用,避免各个业务线各自维护一套线程池导致线程过多。
  3. 根据任务类型选择合适的异步方式,比如优先级低、长时间执行的异步任务可以使用HandlerThread。有个任务定时执行,可以使用线程池。
  4. 创建线程必须命名,方便定位线程归属,可以在线程运行期调用Thread.currentThread().setName() 来修改名字。
  5. 对关键异步任务进行监控,异步不等于不耗时,可以通过 AOP 的方式实现无侵入的监控。
  6. 重视优先级的设置,可以调用 Process.setThreadPriority()来给线程设置优先级,优先级可以根据情况不同,设置多次。

课程收获

这一章内容对 Android 中的异步方式做了全面的汇总,对每种方式的优缺点和使用场景都做了详细的介绍,最后对 Android 中线程的使用给出了一些需要遵守的准则。

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
移動(dòng)開發(fā)工程師
手記
粉絲
12
獲贊與收藏
17

關(guān)注作者,訂閱最新文章

閱讀免費(fèi)教程

  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報(bào)

0/150
提交
取消