void func1{
//加写锁
//todo some thing
//释放写锁
}
void func2{
//加写锁
//todo some thing
//释放写锁
}
void func{
func1();
//todo some thing
func2();
}
原因是:
假若A线程执行func1时先获取到写锁,等释放写锁时,B线程执行func1,获取到写锁,
那么A线程执行func2时,就得等待B线程释放写锁。
总结:能一次进临界区的时候,不要多次进。