进程与线程、并发与并行、同步与异步的区别

来源:互联网 发布:少林足球影评知乎 编辑:程序博客网 时间:2024/06/08 18:05

进程与线程、并发与并行、同步与异步的区别


一、线程与进程的区别
进程:指内存中所运行的程序
线程:进程中的一个执行流
区别:
1、一个程序至少有一个进程(当然也可以启动多个进程),而一个进程至少有一个线程(当然也可以多个线程同时运行,如果支持的话)
2、另外,内存中的每一个进程都是有独立内存单元的(进程是可以申请系统资源的),而其中的多个线程是可以共享内存的(共享其所在进程的资源),可以提高程序运行效率
3、进程是一个“执行中的程序”。
4、子进程和父进程具有不同的代码和数据空间,而多个线程则是共享数据空间。多线程是为了节约CPU时间,充分发挥系统的“空闲时间”。

二、并发与并行的区别
并发:指一个时间段中几个程序都处于已启动到运行完毕之间。(可能现在并没有在工作),且这几个程序都是在同一个处理机上运行。
并行:并行是针对多处理器而言的(当然,单处理器也可以表现出并行的状态,主要表现为进程被交替执行)。指同时发生多个并发事件(但是并发不一定并行,或者说并发事件之间不一定要同一时刻发生),主要表现为重叠执行。

三、同步和异步
同步和异步是相对表现的,通俗点,同步就是顺序执行,执行完当前的任务再执行下一个,需要等待、协调运行。而异步就是彼此独立,多个任务之间不必要互相等待,只要CPU空闲,就可以同时执行多个任务,不需要等待其它任务的完成。而我们平时所说的线程,就是实现异步的一个手段而已。

以上就是我对这几个概念的一个基本了解。

原创粉丝点击