1. 并发与并行
并发:是指在一个时间段内, 有多个程序同时在CPU上运行,但是任意时刻只有一个程序在CPU上运行;
一个时间段内能够完成多个程序的切换,所以例如在1s之内, 执行了100个程序,
并行:是指在任意时刻点上,有多个程序同时运行在CPU上;
例如我们的CPU有四个核心, 那么在一个时刻点上最大程序运载量为4
所以我们平时所说的高并发,但少有听说过高并行,正是因为我们CPU的核心数有限,下面举一个例子来说明这两者的区别:情况是开水没有,水壶要洗,茶壶茶杯要洗;火生了,茶叶也有了该怎么办?
并发版:洗好水壶,灌满凉水,并烧水,然后利用烧水的时间完成洗茶壶、洗茶杯、放茶叶等工作,最后泡茶喝;
并行版: A洗好水壶、灌满凉水,并烧水; B洗茶壶; C洗茶杯,放茶叶;(A、B、C、D均代表某个人)
2.同步与异步
同步:是指程序代码调用IO操作的时候, 需要等到IO操作完成之后才返回的运行方式;
异步:是指程序代码调用IO操作的时候,不需要等到IO操作完成之后才返回的运行方式
3.阻塞与非阻塞
阻塞:是指调用函数时候当前线程/进程被挂起;
非阻塞: 是指调用函数时候当前线程/进程不会被挂起,而是立即返回;