-1
我想知道在运行时lock
与syncronized
之间是否有区别。 我知道syncronized
是一个缓慢的操作,在Java上已经过时了。 今天我在C#上看到了lock
,我想知道它们是否相同,lock
是我希望避免与Java中相同的东西,或者他可以更快,并且我想使用它...C#锁vs Java同步 - 运行时是否有区别?
谢谢!
我想知道在运行时lock
与syncronized
之间是否有区别。 我知道syncronized
是一个缓慢的操作,在Java上已经过时了。 今天我在C#上看到了lock
,我想知道它们是否相同,lock
是我希望避免与Java中相同的东西,或者他可以更快,并且我想使用它...C#锁vs Java同步 - 运行时是否有区别?
谢谢!
1 synchronized不是过时的,java.util.concurrent.locks包只是提供并不总是需要的扩展函数。
2锁定在CPU层面完成,有这方面的Java和C#之间没有区别
看到http://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-faq.html
...特别说明,所谓的记忆障碍,需要刷新或无效本地处理器缓存,以便查看其他处理器所做的写入操作,或者使该处理器的写入对其他处理器可见。这些内存屏障通常在执行锁定和解锁操作时执行;它们对程序员来说是高级语言不可见的。
http://stackoverflow.com/questions/217707/are-there-any-differences-between-javas-synchronize-and-cs-lock – MichaC
因为什么时候'同步'过时?这并不总是实现锁定的正确方式,但它仍然占有一席之地。 – kiheru