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