Java的“同步”和C#的“锁”之间有什么区别吗?
2022-09-03 14:42:34
这两个关键词是否具有完全相同的效果,或者我应该注意什么?
根据这个网站:http://en.csharp-online.net/CSharp_FAQ:_What_is_the_difference_between_CSharp_lock_and_Java_synchronized,C#和Java代码块是“语义相同的”,而对于方法,Java使用,而C#使用属性:。lock
synchronized
synchronized
[MethodImpl(MethodImplOptions.Synchronized)]
Keeg发布的链接中没有涵盖的一个有趣的区别:据我所知,Java中没有等效的方法调用。NET 的 Monitor.Enter 和 Monitor.Exit,C# 语句可以归结为此。这意味着你也不能做Monitor.TryEnter的等价物 - 尽管java.util.concurrent.locks包(从1.5开始)当然有各种各样的锁,这些锁具有更多可用的功能。lock