-4
A
回答
-2
Interlocked类提供了原子操作,这意味着它们不会像锁一样阻止其他代码,因为它们并不需要。当你锁定一段代码时,你要确保同时没有2个线程,这意味着当一个线程在所有其他线程中等待进入时,它使用资源(cpu时间和空闲线程)。另一方面,原子操作不需要阻止其他原子操作,因为它们是原子操作。它在概念上是一个CPU操作,接下来的操作只会在前一个操作之后进行,并且不会在等待时浪费线程。 (顺便说一句,这就是为什么它仅限于像Increment,Exchange等非常基本的操作)
我认为一个锁(它是一个下面的Monitor)使用联锁来知道锁是否已被占用,但它可以'不知道里面的动作可能是原子的。
但在大多数情况下,差异并不重要。但是你需要验证你的具体情况。
+0
互锁方法是_made_原子。它们跨越多个CPU操作。 –
相关问题
- 1. 互斥锁与pthread_join之间的区别
- 2. 锁,互斥和临界区之间的区别
- 3. 比赛和死锁之间的区别
- 4. 监视器和锁之间的区别?
- 5. 互斥锁和锁
- 6. C++中互斥锁和临界区之间的性能差异
- 7. lockObject上的synchronized和使用此锁作为锁之间有什么区别?
- 8. 数据库中显式锁和隐式锁之间有什么区别?
- 9. yarn.lock和npm的包装锁之间有什么区别?
- 10. 触发器和锁存器之间的区别
- 11. 同步和重入锁之间的区别?
- 12. 使用synchronized关键字和锁之间有什么区别
- 13. 锁定互斥锁的分段错误
- 14. 成功的互斥锁锁定
- 15. pthread互斥锁两个线程互锁锁定/解锁是否有效?
- 16. SVN-文件的工作副本上的锁定与存储库文件上的锁定之间的区别
- 17. 锁定指定对象和锁定辅助对象有什么区别?
- 18. 弹簧安全:帐户锁定和未启用之间有什么区别
- 19. C# - 锁定互斥锁问题
- 20. 函数可以锁定互斥锁吗?
- 21. 锁定互斥锁vs访问磁盘
- 22. 环绕状态与死锁之间的区别
- 23. java中的内部锁和监视器锁有什么区别?
- 24. 递归和非递归锁(互斥锁)
- 25. 获取对两个互斥锁的锁定并避免死锁
- 26. 不锁定pthread_cond_timedwait和pthread_cond_signal的互斥锁(在Linux上)
- 27. 多少时间被锁定Touch ID? “生物识别被锁定。”
- 28. 互斥锁/解锁命令
- 29. 避免死锁和防止死锁有什么区别?
- 30. 锁分区死锁
@Habib这不是完全相同的问题。另一个问题是“为了增加这个领域,应该采用哪种方法,为什么?”在这里,OP在询问“他们如何在内部工作?” - 这在那里根本没有解决。 –
答案包含他要求的细节。因此,基本的互联网搜索:/ – Will