windows c++ 协程和线程的区别

发布网友 发布时间: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相当于是定义一个异步操作

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com