进程和线程都是对 CPU 的工作时间段的描述
1. 是 CPU 包含上下文切换的程序执行时间总和
2. 是资源竞争的基本单位,比如竞争 CPU 的调度,以及申请内存(物理地址空间)
= CPU 加载上下文 + CPU 执行 + CPU 保存上下文
1. 是共享了进程的上下文环境的,更为细小的 CPU 时间段
2. 是程序运行的最小单位,是进程的分流(一个进程至少有一个线程)
3. 同一个进程的多个线程之间会共享进程的数据,如果多个线程同时访问进程的数据资源就可能会存在线程冲突(解决办法:互斥锁。这个有时候会出现`死锁``饥饿现象`),
1. 定义:对共享数据的对象添加的,用来保证任意时刻只能有一个线程访问该对象的标记
2. 用于保证共享数据操作的完整性
包括: 加锁、 解锁、 测试加锁
无论那种类型的锁,都无法同事让两个不同的线程访问得到被锁数据,都要等待解锁