1.什么是协程
协程就是一套基于线程的上层框架(一个线程框架)
2.优点
方便 ---在同一个代码块进行多次的线程切换(withContext)
3.挂起 suspend

挂起:稍后会被自动切回来的线程切换
协程的挂起本质是切线程
例子:自定义一个挂起函数 仍在主线程 未切换 因为不知道如何切换

suspend作用:提醒(函数的创建者对函数的调用者的提醒--我是一个耗时操作),可以让主线程不卡
如何自定义一个suspend函数
什么时候自定义:
原则:耗时(I/O操作,CPU计算工作)
怎么写
给函数加上suspend 然后用withContext
也可以用delay 比如等待类型的挂起函数

4.非阻塞式
非阻塞式挂起:不卡线程
(看起来阻塞的代码 写出非阻塞的操作)
协程不一定比线程轻量级

网友评论