“同步原语”这个术语具体是什么意思?例如:互斥锁、临界区、可等待定时器、事件、监视器、条件变量、信号量。它们都是同步原语吗?我没有列出的还有其他同步原语吗?这些问题是否合法?
同步原语是由平台(例如操作系统)提供给其用户以支持线程或进程同步的简单软件机制。它们通常使用较低级别的机制(如原子操作、内存屏障、自旋锁、上下文切换等)构建。
互斥锁、事件、条件变量和信号量都是同步原语。共享锁和独占锁也是如此。监视器通常被认为是一种高级同步工具。它是一个对象,利用其他同步原语(通常是带有条件变量以支持等待和信令的独占锁)来保证其方法的互斥性。在某些上下文中,当监视器用作构建块时,它也被认为是一种同步原语。
关键区域不是同步原语。它是必须受到保护以维护某些不变量的执行路径的一部分。您需要使用一些同步原语来保护关键区域。