术语同步原语是什么意思?例如:互斥体,临界区,等待定时器,事件,监视器,条件变量,信号量。他们都是同步原语吗?还有没有其他同步原语我没有列出?这是一个有效的问题吗?“同步原语”的定义
21
A
回答
32
同步原语是由平台(例如操作系统)为了支持线程或进程同步而向其用户提供的简单软件机制。它们通常使用较低级别的机制(例如,原子操作,内存屏障,自旋锁,上下文切换等)来构建。
互斥量,事件,条件变量和信号都是同步原语。所以共享和排他锁。监视器通常被认为是高级别的同步工具。它是一个保证使用其他同步原语(通常是具有条件变量的独占锁来支持等待和信令)的方法互斥的对象。在某些情况下,当监视器用作构建块时,它也被视为同步原语。
关键部分不是同步原语。它是执行路径的一部分,为了保持一些不变量,必须保护它们免受并发执行。您需要使用一些同步原语来保护关键部分。
1
正如@Loom所建议的那样,我将哥伦比亚大学提供的this list作为您的问题的答案。
还检查了微软的this article日期为2017年3月(我有一种感觉它是较旧的,但哥伦比亚大学的文章也是如此)。
从我所收集的内容来看,同步原语没有很好的定义,因为没有正式的列表。
相关问题
- 1. 同步原语“锁定一次”
- 2. 我需要什么同步原语?
- 3. 同步适配器定义
- 4. 为`Given`和`Then`定义相同的短语步骤
- 5. 同步语句 - 同步方法和同步语句是否相同?
- 6. 递归定义调用原语来
- 7. 同步原语的简单/规范实现?
- 8. 线程同步@原生Android
- 9. 跨进程共享多处理同步原语
- 10. TYPO3:“本地化所有记录”和“与原始语言同步”
- 11. 从代码设计的角度锁定/解锁不同功能中的同步原语
- 12. 同步RPC不好的原因
- 13. 关于同步的意义
- 14. Java数组:同步+原子*,或同步足够?
- 15. PHP语句同步或异步
- 16. 为什么同步代码似乎与字同步的定义相矛盾?
- 17. 未定义的步骤定义黄瓜
- 18. 同步方法和信号量的语义等价(1,true)?
- 19. 以用户定义的频率同步选定的帐户
- 20. 通过不同的SQL服务器进行自定义同步?
- 21. TSQL使EXECUTE语句同步
- 22. Canсel同步语音识别
- 23. 单一语句同步?
- 24. 使用同步语句的可重入同步行为
- 25. springframework的设置自定义的原因短语
- 26. 在两种语言之间同步自定义字段(使用WPML)
- 27. 无法与原点/主号码同步
- 28. 同时更新Java中的原语
- 29. 定义的语法
- 30. CloudKit fetchRecordChangesOperation给出了“AppDefaultZone不支持同步语义”
“关键部分不是同步原语”。 除了在窗口,有一个同步原语称为临界区:http://goo.gl/35zir(是的,我同意这是一个严重滥用定义明确的术语,但我没有办法改变MS错误) – paxos1977
[这里](http://www.cs.columbia.edu/~hgs/os/sync.html)是哥伦比亚大学提供的一个列表 – zook2005
@ zook2005 - 将您的评论作为一个答案(我可以upvote) – Loom