-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