目录
1.进程 VS 线程
程序
● 保存在硬盘、光盘等介质中的可执行代码和数据
● 文件中静态保存的代码
进程
● 在CPU及内存中运行的程序代码
● 动态执行的代码
● 父、子进程
*每个程序可以创建一个或多个进程
1.2 线程
● 线程是操作系统能够进行运算调度的最小单位。
● 它被包含在进程之中,是进程中的实际运作单位。
● 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
总结:线程是进程的一条流水线, 只用来执行程序,而不涉及到申请资源, 是程序实际执行的最小执行单元。
1.3 进程和线程的关系
举列说明:我们打开手机设置,这就是开启了一个进程;当我们在设置里面进行功能设置,比如屏幕显示, 密码设置, 这些操作就是线程.,进程” 包含 “线程”, “线程” 是 “进程” 的子集.
(1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程;
(2)资源分配给进程,同一进程内的所有线程共享该进程的所有资源;
(3)线程在执行过程中需要协作同步。不同进程中的线程之间要利用消息通信的方法实现同步;
(4)处理机分配给线程,即真正在处理机上运行的是线程;
(5)线程是进程的一个执行单元,也是进程内的可调用实体。
对比项 | 进程 | 线程 |
定义 | 进程是程序运行的一个实体运行过程,是系统进行资源分配和调配的一个独立单位 | 线程是进程运行和执行的最小调度单位 |
系统 开销 |
进程系统开销大 | 线程系统开销小 |
资源 | 资源分配的基本单位 | 不拥有资源 |
调度 | 独立调度的基本单位 | 独立调度的最小单位 |
通信 | 进程IPC | 读写同一进程数据通信 |
安全 性 |
进程间相互独立,互不影响 | 线程共享一个进程下的资源,可以互相通信和影响 |
地址 空间 |
系统赋予的独立的内存地址空间 | 由相关堆栈寄存器和线程控制表TCB组成,寄存器可被用来存储线程内的局部变量 |
2.查看进程
2.1 PS静态查看进程信息
PS命令:查看静态的进程统计信息
ps aux
ps -aux(-可加可不加)
选项以及各列解释
选项或列名 | 功能解释 |
a | 显示终端上的所有进程,包括其它用户的进程 |
u | 表示列出进程的用户 |
x | 显示所有终端的进程 |
USER | 进程的用户 |
PID | 进程的ID |
%CPU | 进程占用的CPU百分比 |
%MEM | 占用内存的百分比 |
VSZ | 该进程使用的虚拟内存量(KB),也就是交换分区的大小 |
RSS | 该进程占用的物理内存量(KB) |
TTY | 启动进程的终端名。不是从终端启动的进程则显示为? |
STAT | 该进程的状态(D:不可中断的休眠状态。R:正在运行状态:$:处于休眠状态,可被唤醒,T:停止状态,可能是在后台暂停或进程处于跟踪调试状态。2:僵尸进程,进程已经中止,但是部分程序还在内存当中) |
START | 该进程被触发启动时间 |
TIME | 该进程实际使用CPU运行的时间 |
COMMAND | 进程的启动命令 |
僵尸进程: