并发、并行、串行、同步、异步、阻塞、非阻塞

1.并发VS并行

CPU在一个时间点只能执行一个线程,并发是指在同一个处理器上通过时间片轮转的方式在多个线程之间频繁切换,造成在一个时间段内同时执行多个线程的假象。

线程有五种状态:新建-就绪-运行-阻塞-终止

线程五种状态

单个处理器并发处理线程,当一个线程被运行时,其余的线程就被挂起,处于阻塞状态,执行完当前时间片内的线程,该线程处于阻塞状态,执行下一时间片要处理的任务。

程序的设计者可以为线程指定优先级,优先级高的会被处理器优先调度,或者CPU根据任务的类型决定处理顺序,一般来说,CPU会先去处理一些IO密集型的任务,

并行是指多个处理器在某一瞬间能够同时执行多个线程,是真正意义的同时执行。
在多处理器系统中,既有并发也有并行。

2.并行VS串行

串行通信与并行通信最开始指的是数据的传输方式,数据信号是以八位二进制(也有可能是其他,原理一致)的形式传输,可以是使用一条数据线,按位以固定的时间间隔传输二进制,叫作串行通信,也可以是八条数据线一次将八位二进制数全部传输过去,叫作并行通信

3.同步VS异步

同步是指在当存在多个任务时,当前线程一次只执行一个任务,处理完一个再处理下一个,不会开启新的线程。

异步就是开启新的线程去处理任务。

4.阻塞VS非阻塞

阻塞:在调用系统函数时,由系统决定是否将当前线程挂起,挂起之后等待函数调用结果返回,然后进入就绪态的是阻塞。

非阻塞:不挂起线程,函数立即返回,线程去执行别的任务,非阻塞不定时询问CPU处理结果,函数返回之后继续执行。

你可能感兴趣的:(并发、并行、串行、同步、异步、阻塞、非阻塞)