进程
1.进程(Process)是操作系统分配资源的基本单位,可以把它看作是⼀个类或⼀个 PCB(Process Control Block)进程控制块的结构体。
简单来说:一个可执行文件运行起来就是一个进程
2.进程的本质
类似于 Java 中的类,⽽这个 Java 中的类包含了:
a.PID:进程的唯⼀身份标识。
PID 是进程 ID,相当于你的身份证号,重启前后的 PID 是不同的。
b.进程状态包括:
新建状态
就绪状态
运⾏状态
阻塞状态
销毁状态
c.优先级:决定进程的执⾏顺序。
d.记账信息:为了保证进程执⾏的相对公平。
e.上下⽂:保存本次的执⾏状态,以便下次继续执⾏,整个过程就称之为⼀个上下 ⽂。
f.⼀组内存:指定进程需要使⽤的资源。
线程
1.线程(Thread)是操作系统能够进⾏运算调度的最⼩单位。
2.线程间可以共享的资源:
a.内存可以共享
b.打开的⽂件可以共享
3.线程间不可⽤共享的资源:
a.线程的上下⽂、状态、优先级、记账信息不共享。
b.每个线程有⼀个栈空间不共享。
进程VS线程
a.从属关系不同:
进程是正在运⾏程序的实例,进程中包含了线程,⽽线程中不能包含进程。
b.描述侧重点不同:
进程是操作系统分配资源的基本单位,⽽线程是操作系统调度的基本单位。
c.共享资源不同:
多个进程间不能共享资源,⽽线程可以共享进程资源⽂件。
d.操纵者不同:
⼀般情况下进程的操纵者是操作系统,⽽线程的操纵者是编程⼈员。