排他制御

排他制御をDBで行うのと、Javaでsynchronizedを使うのではどちらが効率がいいのだろう。


DBっていうのは、setAutoCommit(false)を設定して、
SELECT FOR UPDATEで対象行をロックします。
この後ごにょごにょと処理を行ってcommit()します。
このときに別のトランザクションが同じ処理をしようとすると、
SELECT FOR UPDATEで待ちに入ります。
ということで排他制御の完成。
DBを使うの前提での処理ですけど。


これと同じ事をsynchronizedを使って実現できると思うけど、
どちらが効率がいいのか知りたい。ちなみにDBはOracleです。
明日、検証してみようかなぁ。
でも、何を基準に比較すればいいのかが問題だ。