ReentrantReadWriteLock

javaでsynchronizedよりロックの競合を少なくさせる方法

synchronizedを利用して読込み書込み時にロックを行うと、読込みスレッドと読込みスレッドが衝突した時に待ちが発生していましたが

ReentrantReadWriteLockは待ちが発生しません。あくまで読込みスレッドと書込みスレッドが衝突した時にだけ待ちが発生します。(書込みスレッドと書込みスレッドの衝突時でも待ちが発生します。)

サンプル

ReadLockとwriteLockを使った簡単なサンプルを作りました。

comments powered by Disqus