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

2020-04-08 17:58:46 浏览数 (2)

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

协程是啥概念?

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

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

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

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

0 人点赞