协程coroutine
来源:互联网 发布:海鹰数据分析网站 编辑:程序博客网 时间:2024/06/05 08:09
协程coroutine:
大多数语言或多或少都支持协程,如Python的gevent,Lua的coroutine,Go的goroutine。协程也被叫做轻量级线程。通俗点讲就是定义一大堆任务,然后通过一个线程轮着对每个任务都执行一下,协作运行。它的厉害之处在于每运行到一个任务的时候,它都可以从这个任务上一次中断的地方开始运行。
线程比进程轻量级,因此产生一个线程消耗的资源比进程少,上下文切换也比进程节约。而协程比线程更加轻量级,上下文切换更是迅速。
yield return/break:
在c#中yield return/break是用于函数查询集合生成器里面的值(类似迭代)返回,并记录当前现场,下次查询时从上一次记录的yield现场处,继续往下执行,直到继续往下执行没有了,那么退出这段yield的逻辑。yield break会终止掉yield迭代逻辑并跳出。
void Start() { StartCoroutine(Example()); } IEnumerator Example() { print(Time.time); yield return new WaitForSeconds(5); print(Time.time); }
1.使用的地方和不能使用的地方:
必须在MonoBehaviour或继承于MonoBehaviour的类中调用 yield coroutine。yield不可以在Update或者FixedUpdate里使用。
2.开启协程:
StartCoroutine(string methodName)和StartCoroutine(IEnumeratorroutine)都可以开启一个协程,
3.删除协程:
1).在Unity3D中,使用StopCoroutine(stringmethodName)来终止该MonoBehaviour指定方法名的一个协同程序,使用StopAllCoroutines()来终止所有该MonoBehaviour可以终止的协同程序。
阅读全文
0 0
- Coroutine 协程
- Coroutine(协程)
- coroutine协程
- Coroutine协程
- 协程coroutine
- Gevent 协程(coroutine)
- Boost coroutine 协程
- Lua 协程 coroutine
- 协程coroutine资料更新
- 协程(coroutine)
- tornado协程(coroutine)原理
- lua协程coroutine
- tornado.gen.coroutine-协程
- Unity协程(Coroutine)
- Unity Coroutine协程
- unity “协程”Coroutine
- 协程--Coroutine小记
- Boost coroutine 协程
- TabLayout和Bundle传值viewpage Fragment
- Elasticsearch6.x之Kibana插件安装-yellowcong
- 学习5
- IO流:Reader/Write字符流
- cropper.js 裁剪图片并上传(文档翻译+demo)
- 协程coroutine
- 欢迎使用CSDN-markdown编辑器
- STM32项目(七) —— 智能仓库管理系统
- Java入门以及进阶路线、时间安排
- 设计模式学习–建造者模式
- Android开发学习笔记:利用drawable中xml文件编写自定义控件样式(shape)
- mac 10.11.6 安装 nginx
- JDK9API网盘下载
- 小图轮播对应显示大图