原文:https://www.jianshu.com/p/83c481a8bcef
进程( process ):当你的程序一旦被载入到内存中执行,那么你的这段程序就是一个进程。一个或多个进程组成系统中运行的应用程序。另外系统也会为应用的每一个进程分配独立的CPU和内存等资源。
进程是系统分配资源的最小单位。
线程 ( thread ):进程中执行的每一个任务指的就是线程,系统不会为其分配内存资源,各个线程共享进程拥有的内存资源。
进程和线程的关系:
1、内存对资源分配的最小单位是进程,而进程执行的最小单位是线程。
2、一个程序至少有一个进程,一个进程至少有一个线程。
3、线程是不能够脱离进程而独立运行的。
4、当你的进程运行时只产生了一个线程,被称为单线程,否则被称为多线程。(JavaScript是单线程,同一时间只能做一件事。它用途在于与用户交互,以及操作DOM,决定了它是单线程)
5、单线程和多线程都是指在同一进程中的单或多线程。
6、线程越多意味着你在一个进程中同时执行的任务也就越多。
举例:
1、假如进程为一家公司,那么线程指的是为公司服务的员工。
2、公司拥有自己独立的办公空间,员工共享公司的办公空间。
3、一家公司至少有一名员工,而员工也必须有一家自己所属的公司。
4、一位员工需要一件件的去完成工作,多位员工可以协调完成工作。
再来归纳下概念:
1、公司:进程
2、员工:线程
3、公司有一个员工:单线程
4、公司有多名员工:多线程
5、一位员工需要独立完成工作:单线程需要按照程序的顺序依次执行,也就是说只有前面的处理好,后面的才会得到执行。
6、多位员工协调完成工作:多个线程在进程中协作完成任务,从而可以最大程度的使用内存资源。
7、拥有独立办公空间:进程之间独立拥有系统所分配的内存资源
8、员工共享公司办公空间:线程没有自己的内存资源,多个线程共享进程的内存资源
CPU:CPU (中央处理器)是计算机的核心配件,它的作用相当于我们人类的大脑,负责对数据进行运算和处理。
内存:与CPU进行沟通的桥梁。数据只能通过内存这座桥梁到达CPU,前提是CPU为空闲状态,否在必须在内存这座桥梁上等待。
1、当内存不足时,系统会自动从硬盘上划分出一部分空间来扩充内存,这一部分内存就是常说的虚拟内存。虚拟内存的读写能力与真正的内存相差很远,所以当内存不足时,硬盘会一直响。
2、数据如果在内存当中由于某种原因未被释放或无法释放(该数据即是内存泄漏数据),势必会造成内存的浪费,由此造成内存运行速度减慢,甚至崩溃。
我们安装的应用都是在内存中运行的,然后在CPU中处理,如果没有内存,CPU无法接收到数据。
网友评论