不懂就问系列:协程和线程的本质区别是?

2021-01-28 16:50:28 +08:00
 lwlizhe
搜了好多篇文章,都只是说协程是简易版的线程

但是我在 flutter 中用这玩意(应该 isolate 就是协程这个东西吧)发现,卧槽,这玩意好像是只能用一个 CPU 核,一个 CPU 密集型任务直接 jank 了,也就是说无法利用多核资源?

然鹅记得线程是 CPU 最小的任务单位(好像),能够参与 CPU 调度,使用多核资源。

所以协程和线程应该有本质区别的吧,那么问题来了,协程这玩意倒底是个啥玩意……有没有大佬一针见血的点明下?
595 次点击
所在节点    问与答
1 条回复
yuelang85
2021-01-28 16:58:15 +08:00
协程是在线程中的“多线程”。

你可以理解成协程的生成和管理是程序员自己写的,不是计算机硬件,也不是操作系统的机制。

由于是在线程中的,所以协程不能跨核。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/749293

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX