先简要说下结论:

协同程序(coroutine)与多线程情况下的线程比较类似:有自己的堆栈,自己的局部变量,有自己的指令指针(IP,instruction pointer),但与其它协同程序共享全局变量等很多信息。

协程(协同程序): 同一时间只能执行某个协程。开辟多个协程开销不大。协程适合对某任务进行分时处理。

线程: 同一时间可以同时执行多个线程。开辟多条线程开销很大。线程适合多任务同时处理。

1.协程,即协作式程序,其思想是,一系列互相依赖的协程间依次使用CPU,每次只有一个协程工作,而其他协程处于休眠状态。协程实际上是在一个线程中,只不过每个协程对CUP进行分时,协程可以访问和使用unity的所有方法和component

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

线程和协同程序的主要不同在于:在多处理器情况下,从概念上来讲多线程程序同时运行多个线程;而协同程序是通过协作来完成,在任一指定时刻只有一个协同程序在运行,并且这个正在运行的协同程序只在必要时才会被挂起。

Unity协程和线程的区别相关推荐

  1. unity协程和线程

    谈谈线程和协程的区别.一般应用一个应用程序只使用线程这一"资源". 需要明确,Unity只使用了一个线程,但是,我们需要"同时做很多事",那Unity作为单线程 ...

  2. Go 面试官:什么是协程,协程和线程的区别和联系?

    大家好,我是煎鱼. 最近金三银四,是面试的季节.在我的 Go 读者交流群里出现了许多小伙伴在讨论自己面试过程中所遇到的一些 Go 面试题. 今天的男主角,是工程师的必修技能,那就是 "什么是 ...

  3. 什么是协程,协程和线程的区别和联系?

    1 进程 进程是什么 进程是操作系统对一个正在运行的程序的一种抽象,进程是资源分配的最小单位. 进程在操作系统中的抽象表现 为什么有进程 为什么会有 "进程" 呢?说白了还是为了合 ...

  4. 协程和线程的区别、协程原理与优缺点分析、在Java中使用协程

    文章目录 什么是协程 协程的优点与缺点 协程实现原理. 协程与线程在不同编程语言的实现 在Java中使用协程 Kilim介绍 Kilim整合Java,使用举例 小总结 什么是协程 相对于协程,你可能对 ...

  5. 【golang】协程和线程的区别

    线程是系统调度的基本单位.go协程由go语言运行时的调度器进行调度,操作系统内核感知不到协程的存在. 在多核处理场景中,线程是并发与并行同时存在的,而go协程依托于线程,因此多核处理场景下,go协程也 ...

  6. Unity中协程与线程的区别

    本文转载自:https://blog.csdn.net/qq_25122429/article/details/80481443 协同程序(coroutine)与多线程情况下的线程比较类似:有自己的堆 ...

  7. Unity中协程和线程的区别

    协程(协同程序): 同一时间只能执行某个协程.开辟多个协程开销不大.协程适合对某任务进行分时处理. 线程: 同一时间可以同时执行多个线程.开辟多条线程开销很大.线程适合多任务同时处理. 参考:http ...

  8. 新手对于Unity协程的理解

    首先从monoBehavior的生命周期来谈谈协程 我们可以从官网上得到一个图. 从图中,我们可以猜测协程是实现在Update之后且在LateUpdate之前的,并且yield return之后的内容 ...

  9. Unity中协程和线程区别

    协程和线程的效果类似,都可以实现与主线程异步的效果,但是本质不一样. 协程在主线程内,通过软件手段实现函数与主线程的异步效果.Startcoroutine(IEnumerator Func);IEnu ...

最新文章

  1. gdb调试报错:Missing separate debuginfos, use: debuginfo-install glibc-XXX
  2. leetcode 41. First Missing Positive
  3. BZOJ 2402 陶陶的难题II (树链剖分、线段树、凸包、分数规划)
  4. THANATOS数据库(自噬调节相关蛋白及其翻译后修饰信息数据库)使用指南
  5. this super java_java中 this 和super的用法
  6. Windows完成端口(IOCP)
  7. childNodes在IE与Firefox中的区别
  8. Python类继承对象
  9. struts2从form取值的三种方式
  10. 如何使用Aiseesoft Mac FoneTrans传输和管理iOS文件
  11. webpack环境的配置
  12. 一个80后独立开发者
  13. 使用javascript实现点击复制到剪贴板
  14. 一个440MHz的 VGA电路设计与仿真
  15. 图形学空间坐标变化之二维图形观察及变换
  16. 大数据平台的SQL查询引擎有哪些
  17. jeecg-boot 隐藏菜单操作步骤
  18. c语言 由字符串转ASCII码
  19. 微信域名拦截检测API接口
  20. 华为交换机S5720S-52P-SI-AC配置web管理端IP地址

热门文章

  1. 为什么有些人还是不接受蓝牙耳机?初级入门哪款蓝牙耳机适合
  2. Mysql的exist()用法
  3. Java遍历Set集合方法
  4. php 零点定时任务,PHP Laravel定时任务Schedule【干货】
  5. 在Windows 中配置Oracle ODBC驱动(不需要安装客户端)
  6. Instagram对比评测:让山寨惭愧的用心移植
  7. Java笔记(韩顺平Java基础12-14章)
  8. 用syncML同步备份通讯录
  9. 分析理解 vue2.x和3.0的响应式系统的异同
  10. CSS3与页面布局学习总结(五)——Web Font与Sprite