Reader Writer locks are straightforward. You get either the read lock or the write lock, then you lock it during the section of code where you don't want to be interferred with (ie. no concurrency access to protected store).
In the case of the read lock, you are guaranteed that only threads that also tried to get the read lock could be running. Threads that tries to get the write lock will be blocked.
In the case of the write lock, you are guaranteed that all threads that tries to get the read or write lock would be blocked. You are the only thread that owns the lock.
Of course, this is all cooperative. All threads -- whether reading or writing -- should use the appropiate lock. Another issue to worry about is whether the store will work with concurrent reads. It is probably safe to assume that concurrent reads to a DB should work, but you should confirm it.