发布网友 发布时间:2022-04-22 00:09
共2个回答
热心网友 时间:2022-06-03 17:18
展开1全部先简要说下结论:
协同程序(coroutine)与多线程情况下的线程比较类似:有自己的堆栈,自己的局部变量,有自己的指令指针(IP,instruction pointer),但与其它协同程序共享全局变量等很多信息。
协程(协同程序): 同一时间只能执行某个协程。开辟多个协程开销不大。协程适合对某任务进行分时处理。
线程: 同一时间可以同时执行多个线程。开辟多条线程开销很大。线程适合多任务同时处理。
1.协程,即协作式程序,其思想是,一系列互相依赖的协程间依次使用CPU,每次只有一个协程工作,而其他协程处于休眠状态。协程实际上是在一个线程中,只不过每个协程对CUP进行分时,协程可以访问和使用unity的所有方法和component
2.线程,多线程是阻塞式的,每个IO都必须开启一个新的线程,但是对于多CPU的系统应该使用thread,尤其是有大量数据运算的时刻,但是IO密集型就不适合;而且thread中不能操作unity的很多方法和component
热心网友 时间:2022-06-03 17:18
不知道你之前是否有接触过其他语言。 async/await异步编程,可以理解为一种协程的概念,即由.net框架来管理异步调用,而非操作系统。 如进程和线程,都是操作系统进行调度的,而协程是一个非常轻量级的。async相当于是定义一个异步操作