进程 (process): 当你的程序一旦被载入到内存中执行, 那么你的这段程序就是一个进程. 一个或多个进程组成系统当中运行的应用程序, 如浏览器应用. 另系统也会为应用的每一个进程分配独立的 CPU, 内存等资源.
任务栏鼠标右击, 选中菜单中的 "任务管理器", 然后打开, 选中进程选项. 此时映入你眼帘的便是系统中的后台进程列表. 没错, 这里就是你查看进程的地方, 而且你还可以看到每个进程的内存资源信息以及 CPU 占有率等. 如图 (任务管理器):
由上图你应该也已经察觉到了, 进程是系统分配资源的最小单位.
线程 (thread): 进程中执行的每一个任务指的就是线程, 系统不会为其分配内存资源, 各个线程共享进程拥有的内存资源.
进程与线程的关系:
1, 内存对资源分配的最小单位是进程, 而进程执行的最小单位是线程.
2, 一个程序至少有一个进程, 一个进程至少有一个线程.
3, 线程是不能够脱离进程而独立运行的.
4, 当你的进程运行时只产生一个线程, 被称为单线程, 否则被称为多线程.
5, 单线程与多线程都是指的在同一进程当中的单或多.
6, 线程越多意味着你在一个进程中同时执行的任务也就越多.
如果对进程与线程还不了解, 那我再给大家打一个比方:
1, 假如进程为一家公司, 那么线程指的是为公司服务的员工.
2, 公司拥有自己独立的办公空间, 员工共享公司的办公空间.
3, 一家公司至少有一名员工, 而员工也必须有一家自己所属的公司.
4, 一位员工需要一件件的去完成工作, 多位员工可以协调完成工作.
再来归纳下概念:
1, 公司: 进程
2, 员工: 线程
3, 公司有一个员工: 单线程
4, 公司有多名员工: 多线程
5, 一位员工需要独立完成工作: 单线程需要按照程序的顺序依次执行, 也就是说只有前面的处理好, 后面的才会得到执行.
6, 多位员工协调完成工作: 多个线程在进程中协作完成任务, 从而可以最大程度的使用内存资源.
7, 拥有独立办公空间: 进程之间独立拥有系统所分配的内存资源
8, 员工共享公司办公空间: 线程没有自己的内存资源, 多个线程共享进程的内存资源
-----END-----
[公众号回复 "电子书", 送你经典前端电子书籍]
来源: http://www.jianshu.com/p/83c481a8bcef