1.单核cpu之所以能够实现多进程,主要是依靠于操作系统的进程的调度算法:
如时间片轮转算法,在早期,举例说明:有5个正在运行的程序(即5个进程) : QQ 微信 有道词典 网易云音乐 chrome浏览器, 操作系统会让单核cpu轮流来运行这些进程,一个进程只运行2ms,这样看起起来就像多个进程同时在运行,从而实现多进程。
2.多核cpu则理解为多个人来处理程序(性能提高)。
3.线程
线程的运行也是来回切换的执行的,线程是对进程的资源调度,
这副图是一个双向多车道的道路图,假如我们把整条道路看成是一个“进程”的话,那么图中由白色虚线分隔开来的各个车道就是进程中的各个“线程”了。
-
这些线程(车道)共享了进程(道路)的公共资源(土地资源)。
4.协程
协程的调度不是根据时间片来回调度的,更像多核cpu一样,多人同时工作
比如swoole中的协程:
利用协程创建两个数据库链接,他的执行顺序不是从上往下,而是同时进行的,也就类似于异步,所以时间大大缩短
总结:进程,线程和协程都是在进程的基础上面搞出来的东西,为的是解决性能问题,目的是希望能实现多人做事,减少来回切换带来的性能问题。
这是我这个小白的理解,有错请指出,不然怕误导别人~~