【计算机原理】并发 并行 异步 同步 阻塞 非阻塞

来源:互联网 发布:python数据类型 编辑:程序博客网 时间:2024/06/08 08:20

并发

指一个时间段内多个程序(任务)同时处于运行活动状态,而不是在某一个时间点上都处于运行状态。参与并发的程序(任务)都是串行执行的,所以不存在同时刻执行多个程序(任务)的情况。因为有系统时间片轮转的参与,操作系统通过将cpu的执行时间分割成多个时间片,为每个程序(任务)分配时间片,因为cpu处理速度很快,这样就有了看起来好像每个任务都在同时执行的宏观感受,感觉有多个cpu,但本质上一个时间点只有一个程序(任务)在运行。

并行

是在物理条件基础上,多个程序(任务)同时进行,通过增加 cpu 核心来增加多个任务同时进行。

同步

所谓同步,就是在发出一个调用时,在没有得到结果之前,该调用就不返回。但是一旦调用返回,就得到返回值了。换句话说,就是由调用者主动等待这个调用的结果。

多个逻辑间具有一定的关系,必须等前一个任务执行完了才可以执行下一个任务,比如要想从冰箱拿出食物,必须先打开冰箱门。

异步

正好与同步相反,后一个逻辑调用无需等待前一个逻辑调用执行完毕。也就是说前一个逻辑调用发起后就直接返回了,并没有输出,而是在调用执行完成后通过状态、通知来通知调用者,或通过回调函数处理这个调用。

阻塞

是指调用输出之前,当前线程会被挂起。调用线程只有在得到结果之后才会返回。

非阻塞

指在不能立刻返回调用输出之前,该调用不会阻塞当前线程。

参考自: http://www.jianshu.com/p/77332a3b07b5

0 0
原创粉丝点击