Kee*_*eeg 10
根据这个站点:http://en.csharp-online.net/CSharp_FAQ:_What_is_the_difference_between_CSharp_lock_and_Java_synchronized,C#lock和Java synchronized代码块"语义相同",而对于方法,Java使用synchronizedC#使用属性:[MethodImpl(MethodImplOptions.Synchronized)].
Keeg发布的链接中没有涉及到一个有趣的区别:据我所知,在Java的Monitor.Enter和Monitor.Exit中没有用Java的等效方法调用,C#语句归结为.这意味着你不能做相当于Monitor.TryEnter的工作 - 当然java.util.concurrent.locks包(从1.5开始)有各种各样的锁具有更多的功能.lock