临界区段
维基百科,自由的 encyclopedia
在同步的程序设计中,临界区段(Critical section)或称为关键区块 ,指的是一个访问共享资源(例如:共享设备或是共享存储器)的程序片段,而这些共享资源又无法同时被多个线程访问的特性。[1]
此条目需要补充更多来源。 (2018年3月13日) |
当有线程进入临界区段时,其他线程或是行程必须等待(例如:bounded waiting 等待法),有一些同步的机制必须在临界区段的进入点与离开点实现,以确保这些共享资源是被异或的使用,例如:semaphore。
只能被单一线程访问的设备,例如:打印机。
一个最简单的实现方法就是当线程(Thread)进入临界区段时,禁止改变处理器;在Single-Processor系统上,可以用“禁止中断(CLI)”来完成,避免发生系统调用(System Call)导致的上下文切换(Context switching);当离开临界区段时,处理器回复原先的状态。