文章目录
一、协程挂起 和 线程阻塞 对比
1、协程挂起
2、线程阻塞
3、挂起和阻塞对 UI 的影响
4、挂起分析
一、协程挂起 和 线程阻塞 对比
----
挂起是协程中的概念 , 只能在协程中使用...;
阻塞是线程中的概念 , 可以在主线程和子线程中使用 ;
1、协程挂起
协程 挂起 操作 : 在协程中使用 delay 函数 , 挂起 20 秒时间 , 然后 20 秒后更新 UI ; delay...挂起 操作 不会出现 阻塞 UI 刷新的情况 , 挂起的 20 秒不影响 UI 刷新显示 ;
但是如果将主线程阻塞 , UI 不再刷新 , 会出现 ANR 崩溃异常 ;
图形化 GUI 系统中 , 一般都在主线程中更新...UI , 主线程中都有一个无限循环 , 不断刷新界面 , 如果在主线程中执行了耗时操作 , 就会影响到界面的刷新 , 出现漏帧 , ANR 崩溃异常 ;
4、挂起分析
协程中有挂起操作 , 会将挂起点的状态保存..., 同时协程停止执行 , 等待挂起函数执行完毕后 , 协程继续执行 ; 相当于阻塞的是协程 , 不会阻塞主线程 ;