[Linux] 协程是不是我想的这样

Posted 陶士涵的菜地

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Linux] 协程是不是我想的这样相关的知识,希望对你有一定的参考价值。

最早知道的概念是进程 , 每个进程里面的执行单元是线程 , 一个进程肯定有一个主线程 , 也可以开出一些子线程 ,这俩都是操作系统控制的

 

协程是啥概念?

现在又在线程里面增加了个协程的单元 , 这个是各程序自己去实现的概念  , 是比线程更小的一个单元

 

在一个线程里面如果开启了一个协程 , 这个主线程就会被阻塞到协程里面去 , 协程执行完 , 再回到主线程 . 这个好]和线程的阻塞还不一样 ,线程是被操作系统内核所阻塞的,而协程是被程序控制阻塞的 ,没有进入到操作系统内核里 , 这样耗费的资源就少.

 

多进程和多线程的切换 , 都是需要操作系统来处理的 , 如果换成多协程的切换 , 就可以只需要我们程序自己来处理就行了 , 耗费的资源也少.

 

那么对于很多语言例如php有协程的概念 , 应该是单协程 , 并没有增加多协程并发调度切换

 

 

以上是关于[Linux] 协程是不是我想的这样的主要内容,如果未能解决你的问题,请参考以下文章

「理解C++20协程原理」从Linux线程线程与异步编程协程与异步

asio c++20 协程在windows下和linux下设定

Unity协程(Coroutine)

深潜Koltin协程:底层中的协程

golang为什么用协程而不是线程

协程!协程!协程!给你一个吊打面试官的机会!linux服务器开发