定义
临界区 (Critical Section) 指的是访问共享资源(如全局变量、文件、数据库等)的代码片段,该片段在同一时刻只能被一个线程或进程执行。
为了避免竞态条件 (Race Condition),必须通过同步机制(如互斥锁 Mutex、信号量 Semaphore)对临界区进行保护,确保互斥访问 (Mutual Exclusion)。就像是一个单人卫生间,一次只能进一个人,其他人必须在外面排队等待。
- 互斥 (Mutual Exclusion):同一时刻仅允许一个进程进入。
- 前进 (Progress):空闲让进,忙则等待。
- 有限等待 (Bounded Waiting):等待时间有限,防止饥饿。