欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-05-04 11:16:55
最早知道的概念是进程 , 每个进程里面的执行单元是线程 , 一个进程肯定有一个主线程 , 也可以开出一些子线程 ,这俩都是操作系统控制的 协程是啥概念? 现在又在线程里面增加了个协程的单元 , 这个是各程序自己去实现的概念 , 是比线程更小的一个单元 在一个线程里面如果开启了一个协程 , 这个主线程 ......

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

 

协程是啥概念?

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

 

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

 

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

 

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

 

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