这两个关键字是否具有完全相同的效果,或者我应该注意哪些?
答案 0 :(得分:10)
根据此站点: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)]
。
答案 1 :(得分:5)
Keeg发布的链接中没有涉及的一个有趣的区别:据我所知,Java for .NET Monitor.Enter和{{3}没有等效的方法调用},C#lock
声明归结为。这意味着你不能做同等级的Monitor.Exit - 当然java.util.concurrent.locks包(从1.5开始)有各种各样的锁,它们有更多的功能。
答案 2 :(得分:-1)