1.协程,即协作式程序,其思想是,一系列互相依赖的协程间依次使用CPU,每次只有一个协程工作,而其他协程处于休眠状态。

unity中StartCoroutine()就是协程,协程实际上是在一个线程中,只不过每个协程对CUP进行分时,StartCoroutine()可以访问和使用unity的所有方法和component

2.Thread,多线程是阻塞式的,每个IO都必须开启一个新的线程,但是对于多CPU的系统应该使用thread,尤其是有大量数据运算的时刻,但是IO密集型就不适合;而且thread中不能操作unity的很多方法和component

3.异步,其实就是从线程池中的一个线程来完成某个任务,适合于IO密集型的操作。

4.协同程序(coroutine)与多线程情况下的线程比较类似:有自己的堆栈,自己的局部变量,有自己的指令指针(IP,instruction pointer),但与其它协同程序共享全局变量等很多信息。线程和协同程序的主要不同在于:在多处理器情况下,从概念上来讲多线程程序同时运行多个线程;而协同程序是通过协作来完成,在任一指定时刻只有一个协同程序在运行,并且这个正在运行的协同程序只在必要时才会被挂起。

=====================================================================

1.

2. 逐层显示出楼房

 void Start()
{
for (int i = 1; i < 14; i++) //第1秒显示第1层,第10秒的时候显示第10层
{
StartCoroutine(Show(i));
}
}
IEnumerator Show(int i)
{
//实现逐层显示,下两句的位置不能颠倒
yield return new WaitForSeconds(i);
if (j < 14)
{
floor[j++].SetActive(true);
}
}

  如果按下面方式写就会卡好几秒之后全部显示出来,而不会一层层显示

    IEnumerator Show(int i)
{
if (j < 14)
{
floor[j++].SetActive(true);
}
yield return new WaitForSeconds(i);
} 
unity 隐藏与显示www.unity@manual.com/4419.html 

  

  StartCoroutine(string methodName)和StartCoroutine(IEnumerator routine)的区别(参考 关于线程一说有待研究)

参考  1 2

最新文章

  1. python学习笔记(基础二:注释、用户输入、格式化输出)
  2. $(&quot;&quot;).click与onclick的区别示例介绍
  3. Mac OS X 系统12个常用的文本编辑快捷键(移动、选中)
  4. leach-matlab
  5. HDU3491 Thieves(最小割)
  6. Object类、包装类、内部类详解
  7. LintCode-Implement Queue by Stacks
  8. FastLoad错误 — SELECT Failed. 2652
  9. 美好头标ToolBar
  10. Oracle 优化——位图、函数等索引介绍
  11. 浅谈Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路
  12. Windows 8 应用开发 - 磁贴
  13. 字典的.get方法
  14. 关于postman各功能的说明及用法以及批量执行
  15. 20145225《网络对抗》Exp8 Web基础
  16. mapreduce方式操作hbase
  17. 数据结构notes
  18. 【转】dd命令详解及利用dd测试磁盘性能
  19. shader 变体variants
  20. PIE SDK云图动画导出

热门文章

  1. (转)关于redis、memcache、mongoDB 的对比
  2. java新手笔记34 连接数据库
  3. Spring boot 1.3.5 RELEASE 官方文档中文翻译--目录
  4. 在20上链接db2
  5. java.util.HashSet源码分析
  6. color 颜色代码 android res/values/colors.xml
  7. jquery.ajax中的ifModified参数的误解
  8. SSO单点登陆
  9. Linux文件目录结构说明
  10. 修改wamp的apache默认端口80以及www目录