iimplement RWMutex and rw.Locker()

RWMutex is a reader/writer mutual exclusion lock.

rw.RLocker returns an RLocker instance that implements the lock and unnlock
methods of RWMutex