Java的"同步"和C#的"锁定"之间有什么区别吗?

Epa*_*aga 14 c# java synchronization

这两个关键字是否具有完全相同的效果,或者我应该注意哪些?

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)].

  • 页面不再存在。 (2认同)

Jon*_*eet 5

Keeg发布的链接中没有涉及到一个有趣的区别:据我所知,在Java的Monitor.EnterMonitor.Exit中没有用Java的等效方法调用,C#语句归结为.这意味着你不能做相当于Monitor.TryEnter的工作 - 当然java.util.concurrent.locks包(从1.5开始)有各种各样的锁具有更多的功能.lock