线程
在线程中有一个程序计数器,用来记录接着要执行哪一条指令。
线程拥有寄存器,用来保存线程当前的工作变量。
线程还拥有一个堆栈,用来记录执行历史,其中每一帧保存了一个已调用的但是还没有从中返回的过程
多个进程共用物理空间和内存,磁盘,打印机,
而线程是公用同一片地址空间和其他资源
享有相同的全局变量
线程三态
- 运行态
- 就绪态
- 阻塞态
线程切换
满足select模型,当阻塞了就select函数会将他异常
进程间的通信(IPC)
进程问题:
- 如何通信
- 确保活动不会出现交叉
- 顺序相关
竞争条件
- 概念:
- 多进程协作工作,读写某些共享数据,最后的结果取决于运行的时序
例子:如假脱机打印程序
- 多进程协作工作,读写某些共享数据,最后的结果取决于运行的时序
临界区
避免上面的竞争条件
- 概念
- 将共享内存进行访问的程序片段称为临界区
解决竞争的条件:
- 将共享内存进行访问的程序片段称为临界区
- 任何时刻都只能一个进程进入临界区
- 不对cpu的速度和数量做假设
- 临界区外运行的进程不得阻塞其他进程
- 不得无限期等待进入临界区
用心做~