串行:程序按顺序执行,同一时间只能执行一个程序,前一个执行完毕后才轮到后一个
并行:多个程序可以同时执行,宏观和微观上看程序都是同时执行
并发:同一时刻只有一条程序执行,但是多个进程被快速轮换执行,宏观上看是同时执行,微观上看只是把时间分成若干段,使多个进程快速交替的执行
并发与并行关注的是程序是否在同一时间内同时被执行
另外:
当有多个线程在操作时,如果系统只有一个 CPU,则它根本不可能真正同时进行一个以上的线程,它只能把 CPU 运行时间划分成若干个时间段,再将时间段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状态.这种方式我们称之为并发(Concurrent)。
当系统有一个以上 CPU 时,则线程的操作有可能非并发。当一个 CPU 执行一个线程时,另一个 CPU 可以执行另一个线程,两个线程互不抢占 CPU 资源,可以同时进行,这种方式我们称之为并行(Parallel)。
进程之间资源不共享,而线程之间资源共享(故引入锁以处理资源分配问题)
同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。
异步,当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。
同步和异步关注的是消息通信机制
阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态
原文:https://www.cnblogs.com/Createsequence/p/12659033.html