ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

AtomicIntegerの勝ち

2008-04-18 20:49:58 | PG(Java)

昨日の実験ではJDK1.5で導入されたReentrantReadWriteLockを使った読み書きロックがsynchronziedに負けてしまったので(書き込みだけしか行わない処理だったからある意味仕方ないのだが)、読み書きロックの利点である「読み込み」だけを行う処理で実験
祝!さすがにこちらは読み書きロックの方がsynchronizedより速い。(そうでないと存在意義ないからなー)

が、単純な排他カウンターでは、AtomicIntegerの方が断然速い!思わず「圧倒的ではないか、AtomicIntegerは」と、どこかでよく使われるネタが脳裏に浮かんでしまった(苦笑)

まぁ、単純なカウンターではない、読み込み頻度が書き込みより多くなる排他処理についてはsynchronizedよりReentrantReadWriteLockの方がいいのは確かなようだ。


アトミック

2008-04-17 23:59:41 | PG(Java)

JDK1.6のNumberクラスのJavadocを見ていたら、見慣れぬ継承クラスを発見。
AtomicIntegerとかAtomicLongとか。JDK1.5で導入されていたらしい。

しかし、いわゆるintやlongのラッパーとは違って、排他しつつカウントする為のクラスらしい。synchronizedを使って排他するより高速なので、いいかも。
(でもNumberを継承しているのでintValue()とかは使える。…どんな意味が??)

ついでに(前から何の役に立つのか疑問だった)volatileについてもちょっと調べてみた。
それと自分の古い知識を元にまとめてみたが、果たして合ってるのかなぁ…?