V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Pantheoon  ›  全部回复第 11 页 / 共 11 页
回复总数  204
1 ... 2  3  4  5  6  7  8  9  10  11  
2022 年 9 月 16 日
回复了 714105382 创建的主题 Kotlin Kotlin 的协程是真协程吗?被 b 站博主搞蒙了
其实就是回调,没那么难理解,举个例子:
doSth(xxx,new Listener(){
success(){}
})
success 就是写在回调里面的,这种方式一个是比较丑陋,第二个是会有回调地狱的问题,doSth 可以跑在主线程,success 可以跑在子线程里面,后面为了解决丑陋的问题,就有了 await 这个关键字,js 和 c#都有,语法就变成了这样:
await doSth()
success()
看到没有,如果有 await 他的语法是等价于上面那种东西的,doSth 可以跑在主线程,success 跑在了子线程里面,也就是用同步的方式写异步代码,线程发生了切换,但执行的顺序是同步的,本质上是回调
然后到了 kotlin,首先,kotlin 吹嘘协程是对开发产生了误导,他的本质其实就是类似 await,通过语法把回调屏蔽掉:
launch{
doSth()
success()
}
suspend doSth()
而 suspend 关键字就是类似于 await,async 的 async 一样,其实就是打个标记,告诉编译器,后面可以加回调,当线程执行 success 时,doSth 方法没有被执行,也就是所谓的挂起来了,而添加回调的方式叫做 continuation,也就是反编译后是类似这样的语法
doSth().continuation(success())
大概这样子
2022 年 8 月 18 日
回复了 quietDown 创建的主题 职场话题 [咨询] 如何提高英语进入外企
多多上面有英语一对一的课程,如果不介意口音的话,可以选择菲律宾老师,很便宜
以前喜欢买纸质书,翻着看有感觉,后来搬了几次家,实在搬累了,大概有个四五十本吧,然后全卖掉了,现在都是找电子的看,纸质书还有个坏处就是除非买的很明确,不然很容易被坑,被书的内容坑
2019 年 9 月 29 日
回复了 MrCurly 创建的主题 程序员 想吃程序员这碗饭了,还希望过来人给点建议
要建议就是别吃
1 ... 2  3  4  5  6  7  8  9  10  11  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2854 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 18ms · UTC 07:43 · PVG 15:43 · LAX 23:43 · JFK 02:43
♥ Do have faith in what you're doing.