U3D&协程&异步&状态机&设计模式
来源:互联网 发布:js首页下拉列 编辑:程序博客网 时间:2024/05/14 17:50
之前接触LUA时,就看到过协程2字。只是很少用到,自然没有仔细研究过。U3D中也有协程,并且经常打交道。所以也开始仔细研究之。
那么这里,我就用3W(why-how-what) 的方式,来阐述下自己对协程的理解吧。
一、why
显然引入协程的概念,自然是对一种客户端处理异步防止游戏主循环阻塞的编程方式的总结、归纳得出的一种设计模式。其本质就是其他线程与游戏主循环线程的交互关系。显然为了隐藏这些细节,方便客户端程序编写此类逻辑,而提取出来的一种,编程手法。
二、how
那么,协程是怎么工作的呢。本质上,就是将一段代码切分成一个有限状态机。在主线程中检查该状态机状态并切换状态。这里的关键点是对一段代码做切分。显然不是所有语言都能实现这种设计模式。如C/C++。归纳下,你就会发现,具有协程功能的语言基本上都是脚本语言。因为现代脚本语言有个很重要的特性,就是内嵌函数。没有该特性的支持,我们能抽象,精炼出协程工作模式的通用代码。但是无法做到 将一套时间轴上执行的代码,写在一个函数内!
三、what
所以,协程很好,最大好处是让程序员可以很清楚表达一组异步有序的逻辑过程!而不需要考虑线程间的交互过程
0 0
- U3D&协程&异步&状态机&设计模式
- 设计模式-状态机模式
- 状态机设计模式理解
- 【U3D设计模式】工厂模式
- 【U3D设计模式】观察者模式
- 设计模式之状态机模式
- 设计模式之状态机模式
- 设计模式之状态机模式
- Unity3D 项目架构基础(一)U3D简单状态机模式
- 详解QuickCocos2dX状态机模式设计
- 详解QuickCocos2dX状态机模式设计
- 详解QuickCocos2dX状态机模式设计
- 设计模式(三)状态机
- 【U3D设计模式】单例模式
- 设计模式-状态模式实现状态机
- java设计模式之State-状态机
- LabVIEW设计模式系列——状态机
- 异步设计模式
- error C2628: 'TestClass' followed by 'int' is illegal (did you forget a ';'?)
- Android 开发之ContentProvider 基础学习
- 8.进程间通信---消息队列
- 最简单的基于FFmpeg的移动端例子:IOS HelloWorld
- dubbo架构原理
- U3D&协程&异步&状态机&设计模式
- AndroidStudio运行不了的问题持续更新中。。。
- 敏捷开发之Scrum扫盲篇
- 扩展样式
- 快速排序
- Android基础之drawable标签的使用上
- 文章标题
- Error: com.android.ide.common.process.ProcessException: org.gradle.proc ess.internal.ExecException:
- 使用$watch来监视属性或对象的变化