If you have a lot of writes, this is a KILLER.
You need to be very careful here.
Note, even with Read-Slaves, you are STILL blocked, since each write replicates to each Read-Slave, and counts as a blocking-write on that slave while it replicates in.
We dramatically increased application performance when we refactored to remove a lot of little writes for things like caching, and moved them to memcache.
You always have to benchmark for your own use-case.
This is even more true for mongo than for other databases because mongo doesn't degrade very well; when you overload it with writes it will effectively grind to a halt.
No, a read write lock is a lock designed so that multiple readers can hold the lock, but only a single writer can hold the lock. That way readers know no write is taking place(as many reads as you like can take place), and writers know they have exclusive access.