多线程读写锁的封装。避免重复加锁导致的死锁及未定义行为。