进程:正在进行的一个过程或者说一个任务。而负责执行任务则是cpu。
程序:仅仅是一堆代
进程:是指打开程序运行的过程
并发与并行是指cpu运行多个程序的方式
不管是并行与并发,在用户看起来都是‘同时'运行的,他们都只是一个任务而已,正在干活的是cpu,而一个cpu只能执行一个任务。
并行就相当于有好多台设备,可以同时供好多人使用。
而并发就相当于只有一台设备,供几个人轮流用,每个人用一会就换另一个人。
所以只有多个cpu才能实现并行,而一个cpu只能实现实现并发。
如上图所示:
串行:执行完A,再执行B,再执行C
并行:同时执行ABC
并发:交替执行ABC
并发与并行是指cpu运行多个程序的方式,而同步和异步是指一个程序的执行过程
同步:所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不会返回。
按照这个定义,其实大部分函数都是同步调用,但是一般而言,我们说同步和异步的时候,
特指哪些需要其他部件协作或者需要一定时间完成的任务
异步:异步的概念和同步相对,当一个异步功能调用发出后,调用者不能立即得到结果
当该异步功能完成后,通过状态。通知或回调来通知调用者。如果异步功能用状态来通知,那么
调用者就需要每隔一定时间检查一次,效率就回很低,如果使用通知的方式,效率就回很高,
因为异步功能几乎不需要做额外的操作,至于回调函数,其实和通知没太大区别。
阻塞:阻塞调用是指调用结果返回之前,当前线程会被挂起(如遇到IO操作)。
函数只有得到结果之后才会被阻塞的线程激活。
非阻塞:非阻塞和阻塞的概念相对,指在不能立即得到结果之前也会立即返回,同时该函数不会阻塞当前线程
小结:同步与异步针对的是函数/任务的调用方式:同步就是当一个进程发起一个函数调用的时候,一直等到函数/任务完成,
而进程继续处于激活状态。而异步情况下是当一个进程发起一个函数|任务调用的时候,不会等函数返回,而继续往下执行,
函数返回的时候通过状态、通知、时间等方式通知进程任务完成
而阻塞和非阻塞是针对进程或者线程,阻塞是当请求不能满足的时候就挂起,而非阻塞则不会阻塞当前的进程
进程的创建:
但凡是硬件,都需要有操作系统去管理,只要有操作系统,就有进程的概念,就需要有创建进程的方式,一些操作系统只为一个应用程序设计,比如微波炉中的控制器,一旦启动微波炉,所有的进程都已经存在。
新闻热点
疑难解答