为了提高CPU的使用效率、支持多任务操作,操作系统中引入了并发技术。
所谓并发是指系统中的多个程序或程序段能够同时执行,这里的同时执行并不是指某一个时刻多段程序在同进执行(除非有多个CPU),而是CPU能把时间分给不同的程序段。比如前面等待I/O的例子,若采用并发技术,当一个程序在等待I/O时,系统可以把CPU资源分配给另外的程序,这样能减少CPU的空闲时间提高了资源利用率。
就是程序同时执行,中间没有等待过程,如果遇到io阻塞继续执行后面的线程就是并行的
并发:
系统具有处理多个任务或者动作的能力(比如单核CPU 处理单任务;接着有处理其他的任务)
百度解释:并发是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。
并行
系统具有同时处理多个任务或者动作能力(比如多核CPU 同时处理多个任务)
百度解释:并排行走”或“同时实行或实施”。在操作系统中是指,一组程序按独立异步的速度执行,不等于时间上的重叠(同一个时刻发生)。要区别并发。并发是指:在同一个时间段内,两个或多个程序执行,有时间上的重叠(宏观上是同时,微观上仍是顺序执行)。并行也指8位数据同时通过并行线进行传送,这样数据传送速度大大提高,但并行传送的线路长度受到限制,因为长度增加,干扰就会增加,数据也就容易出错
异步
不用等所有操作等做完,就可以做其他的处理(比如发消息,发完后,我不需要等你回复,就可以做其他处理)
同步
必须等所有的操作都做完,才返回给用户结果(比如打电话)
串行:
就是程序代码从上到下按顺序执行,如果遇到io阻塞就等待