一、windows进程同步机制
- 临界区(锁)
- 互斥量(锁)
- 信号量
- 事件
- 等待操作
临界区
- 在进程内使用,保证仅一个线程可以申请到该对象
- 临界区内是临界区的访问
互斥量
- 保证只有一个线程或进程可以申请到该对象
- 可以跨进程使用
- 可以有名称
- 互斥量比临界区要耗费更多资源,速度慢
信号量
- 允许指定数目的多个线程/进程访问临界区
- 一个资源计数器,用于限制并发线程的数量
- 初始值可设为N,则表示允许N个进程/线程并发访问资源
信号量的值可以通过相应函数增或减。
事件
- 用于通知一个或多个线程某事件出现或标识某操作已经完成
事件对象的分类
- 自动重置的事件
- 人工重置的事件
二、Linux父子进程同步
父进程对子进程做善后处理,子进程给父进程提供处理信息。
父子进程在使用普通变量时,操作的是副本,相互之间不会产生影响。
父子进程在使用文件时,共享同一文件和读写指针。