同步原语到底是什么意思?例如:互斥,关键部分,等待定时器,事件,监视器,条件变量,信号量。所有这些都是同步原语吗?是否还有其他的同步原语我还没有列出?这是一个有效的问题吗?
发布于 2011-11-05 01:57:16
同步原语是平台(例如操作系统)为支持线程或进程同步而向用户提供的简单软件机制。它们通常使用较低级别的机制(例如原子操作、内存屏障、自旋锁、上下文开关等)构建。
互斥、事件、条件变量和信号量都是同步原语。共享和排他性锁也是如此。监视器通常被认为是一种高级同步工具.它是一个使用其他同步原语(通常是带有条件变量的独占锁,以支持等待和信令)来保证其方法的互斥性的对象。在某些情况下,当监视器被用作一个构建块时,它也被认为是一个同步原语。
关键部分不是同步原语。它是执行路径的一部分,为了维护某些不变量,必须防止并发执行。您需要使用一些同步原语来保护关键部分。
发布于 2018-01-22 22:20:04
正如@Loom建议的那样,我添加了哥伦比亚大学提供的这份清单,作为对您问题的回答。
也可以看看微软的这篇文章,它的日期是03/2017 (我觉得它更老了,哥伦比亚大学的文章也是如此)。
据我所收集的,同步原语并没有很好的定义,因为它们没有正式的列表。
https://stackoverflow.com/questions/8017507
复制相似问题