[Linux] 协程是不是我想的这样
程序员文章站
2022-09-27 08:06:06
最早知道的概念是进程 , 每个进程里面的执行单元是线程 , 一个进程肯定有一个主线程 , 也可以开出一些子线程 ,这俩都是操作系统控制的 协程是啥概念? 现在又在线程里面增加了个协程的单元 , 这个是各程序自己去实现的概念 , 是比线程更小的一个单元 在一个线程里面如果开启了一个协程 , 这个主线程 ......
最早知道的概念是进程 , 每个进程里面的执行单元是线程 , 一个进程肯定有一个主线程 , 也可以开出一些子线程 ,这俩都是操作系统控制的
协程是啥概念?
现在又在线程里面增加了个协程的单元 , 这个是各程序自己去实现的概念 , 是比线程更小的一个单元
在一个线程里面如果开启了一个协程 , 这个主线程就会被阻塞到协程里面去 , 协程执行完 , 再回到主线程 . 这个好]和线程的阻塞还不一样 ,线程是被操作系统内核所阻塞的,而协程是被程序控制阻塞的 ,没有进入到操作系统内核里 , 这样耗费的资源就少.
多进程和多线程的切换 , 都是需要操作系统来处理的 , 如果换成多协程的切换 , 就可以只需要我们程序自己来处理就行了 , 耗费的资源也少.
那么对于很多语言例如php有协程的概念 , 应该是单协程 , 并没有增加多协程并发调度切换
上一篇: Go语言库系列之aurora
下一篇: 慈禧为什么在晚年一步也离不开李莲英?