Java“ synchronized”之间是否存在任何差异?和C#的“锁定”?
-
03-07-2019 - |
题
这两个关键字是否具有完全相同的效果,或者我应该注意哪些?
解决方案
根据此网站: http://en.csharp-online.net/CSharp_FAQ:_What_is_the_difference_between_CSharp_lock_and_Java_synchronized ,C# lock
和Java synchronized
代码块“在语义上相同”,而对于方法,Java使用 synchronized
而C#使用属性: [MethodImpl(MethodImplOptions.Synchronized)]
。
其他提示
Keeg发布的链接中没有涉及的一个有趣的区别:就我所知,在Java的.NET中没有等效的方法调用 Monitor.Enter 和 Monitor.Exit ,C# lock
语句归结为。这意味着您不能完全等同于监控。 TryEnter - 当然java.util.concurrent.locks包(从1.5开始)有各种各样的锁,它们有更多可用的功能。
不隶属于 StackOverflow