博客摘录「 unity 协程 多线程 进程 纤程 区别和介绍」2025年5月22日

Unity中的Coroutine原理猜测: 虚拟机分段执行机制, 同类型嵌套用栈存放实现串行执行:.NET虚拟机在每一帧循环中, 会依次进入每个编译器预定义好的入口。对于Coroutine类型,编译器需要产生一些代码,在Coroutine类型指定的时间或事件完成后(.net的虚拟机用函数指针进行标记管理现场和在流程中每帧检查时间或者事件满足后发送消息,将cpu所有权交给yield中断的现场,或是通过包含不同Coroutine迭代器的多个管理类管理各个coroutine, 每帧用coroutine子类通过多态检查时间或事件到达,将cpu所有权交给coroutine子类中断的现场),从yield中断后的代码处继续往下执行, 这样就形成了我们看到的一个function能分段执行的机制。 而对于嵌套Coroutine类型,会串行的执行而不是并行的,可能.net虚拟机对于同coroutine类型用栈存放,栈顶的先执行,从而实现串行执行,如果外层的不使用yield return,那么不会串行执行,而是并行执行。于是就可以解释上面例子中的执行次序问题。

相关推荐
sz-lcw8 分钟前
MySQL知识笔记
笔记·mysql·adb
古译汉书40 分钟前
嵌入式铁头山羊STM32-各章节详细笔记-查阅传送门
数据结构·笔记·stm32·单片机·嵌入式硬件·个人开发
2301_800050993 小时前
DNS 服务器
linux·运维·笔记
汇能感知3 小时前
光谱相机的未来趋势
经验分享·笔记·科技
风已经起了6 小时前
FPGA学习笔记——图像处理之对比度调节(直方图均衡化)
图像处理·笔记·学习·fpga开发·fpga
go_bai6 小时前
Linux--常见工具
linux·开发语言·经验分享·笔记·vim·学习方法
sjh21009 小时前
【学习笔记】20年前的微芯an1078foc技术,smo滑模位置估计,反电动势波形还不错,为何位置估计反而超前了呢?
笔记·学习
航Hang*9 小时前
Kurt-Blender零基础教程:第3章:材质篇——第1节:材质基础~原理化BSDF,添加有纹理材质与用蒙版做纹理叠加
笔记·blender·材质·建模
泽虞10 小时前
《C++程序设计》笔记p4
linux·开发语言·c++·笔记·算法
峰顶听歌的鲸鱼12 小时前
29.Linux防火墙管理
linux·运维·网络·笔记·学习方法