08/02/27 21:56:31
Java の理論と実践: アトミックで行く
URLリンク(www.ibm.com)
このページにある、リスト3: SimulatedCAS クラスの compareAndSwap について質問です。
SimulatedCAS のコードのすぐ下にある説明書きに、
「CASベースの並行アルゴリズムは、スレッドがロックを待つ必要が全くないので、lock-freeと呼ばれます」
という記述があります。
しかし SimulatedCAS の compareAndSwap メソッドは synchronized メソッドに
なっています。Simulated って書いてあるから実際使うときは違うやつ使うのか
なと思いきや、 リスト4 のコードで思いっきり使ってあります。
compare-and-swap アルゴリズムを真似たプログラムは、 synchronized であっても
ロックされないように最適化されるということでしょうか?