程序(Program):指令序列
1、由
程序设计语言编写
2、在满足相应的
语法要求,可以运行于对应的
结构体系上(
环境)
3、
顺序执行,且完成
数据处理(赋值、计算、转换、传输........)
进程(Process):程序的一次执行过程
1、 程序及其数据在处理机上顺序执行时发生的活动
2、是系统进行资源分配和调度的一个独立单位
程序和进程的区别:
程序(program) | 静态 | 永久性 | 无并发性 | 无PCB(进程控制块)结构 |
进程(Process) | 动态 | 暂时性 | 可多并发 | 拥有PCB结构,可实现并发、独立、异步特性 |
进程的基本状态:
可以类比我们写代码
1>没有I/O操作:
public static void main(String[] args) {
int a=1;
}
执行完 int a=1;操作后程序活动结束,进程结束
2>有I/O操作阻塞:
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int b = scan.nextInt();
}
scan.nextInt() 需要你有一个控制台输入,否则程序阻塞在这一步
再输入数据后执行赋值操作后,程序结束
线程(Thread):轻量级进程
1、作为调度和分配的基本单元
2、一个单一的顺序控制流程
线程与进程区别:
1、一个进程可包含多个线程,至少包含一个线程
2、进程是是资源的调度和分配的一个独立单元,线程是CPU调度和分配的基本单元
3、进程是独立运行的基本单元