gpt4 book ai didi

c# - c# 和 java 是否有相同的同步问题/概念?

转载 作者:太空宇宙 更新时间:2023-11-03 18:48:34 24 4
gpt4 key购买 nike

我刚刚学习 Java,我发现 Java 文档/书籍非常强调同步。我已经阅读了相当多的 c# 文档/书籍,但您只是看不到对这个主题的重视程度。

c# 处理锁定/同步的方式是否不同,或者作为 Web 应用程序(应用程序池、iis、clr 与容器/jvm/tomcat)的工作方式是否不同?

最佳答案

locksynchronized 大致相同,尽管它们的实现方式有所不同 - 特别是,在 C# 中,lock 只是调用 Monitor.Enter/的语法糖退出,而在 Java 中没有等效的库。

C# 没有同步方法,尽管您可以使用 [MethodImpl(MethodImplOptions.Synchronized)] 来实现大致相同的效果。 (我认为存在一些细微差别,但它们大致相同。)我不建议在任何一种语言中使用它,但是 - 锁定私有(private)锁。

.NET 和 Java 中的其他并发库支持相去甚远 - Object.wait/notify/notifyAll 和 Monitor.Wait/Pulse/PulseAll 的原语相似,但更高级别的支持相当不同。

内存模型略有不同 - 如果您不尝试在没有锁定的情况下工作,它们就足够接近了,但是正确的无锁代码在 .NET 和 Java 中会有所不同。

不太确定如何回答您的网络应用问题...

关于c# - c# 和 java 是否有相同的同步问题/概念?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2064432/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com