1、說明
當多個線程同時對某個資源進行CAS操作時,只有一個線程成功,但不會堵塞其他線程,其他線程只會收到操作失敗的訊號。可見CAS其實是樂觀的鎖。
2、實例
跟隨AtomInteger的程式碼,我們可以發現最終呼叫的是sum.misc.Unsafe。看看Unsafe這個名字,它是一個不安全的類別,它利用了Java類別和可見性規則中恰到好處的漏洞。為了速度,Unsafe在Java的安全標準上做出了一些妥協。
public final native boolean compareAndSwapInt(Object var1, long var2, int var4, int var5);
這幾個 CAS 的方法應該是使用了本地的方法。所以這幾個方法的具體實作需要我們自己去 jdk 的源碼中搜尋。
1.Java語言作為靜態物件導向程式語言的代表,實現了物件導向理論,允許程式設計師以優雅的思維方式進行複雜的程式設計。
2.Java具有簡單性、物件導向、分散式、安全性、平台獨立與可移植性、動態性等特性。
3.使用Java可以編寫桌面應用程式、Web應用程式、分散式系統和嵌入式系統應用程式等。
以上是java CAS的概念是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!