1.概述
1.1.程序
程序就是计算机能够识别的指令的集合,静态的概念;
1.2.进程
1>.程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至CPU,数据加载至内存.在指令运行过程中还需要用到磁盘、网络等设备.进程就是用来加载指令、管理内存、管理IO的
;
2>.当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启了一个进程;
3>.进程可以视为程序的一个实例
.大部分程序可以同时运行多个实例进程(例如记事本、画图、浏览器等),也有的程序只能启动一个实例进程(例如网易云音乐、360安全卫士等);
4>.操作系统调度程序,动态的概念;
5>.进程是程序的一次动态执行过程,占用特定的地址空间;每个进程都是相互独立的;
1.1.3.线程
1>.一个线程就是一个指令流,将指令流中的一条条指令以一定的顺序交给CPU执行
;
2>.Java中,线程作为最小调度单位
,进程作为资源分配的最小单位.
在windows中进程是不活动的,只是作为线程的容器;
//CPU从线程中获取指令,管理指令的执行;
3>.线程是进程中的一个"单一的连续控制流程"或者说执行路径
,因此线程又被称为轻量级进程;
4>.一个进程中可以拥有多个并行的线程;
5>.一个进程中的多个线程共享相同的(同一份)内存单元/内存地址空间,所以他们可以访问相同的变量和对象,而且他们从一个堆中分配对象;
6>.线程之间的通信是在同一个地址空间上进的</