能一次进临界区的时候,不要多次进入

来源:互联网 发布:软件工程品质数据 编辑:程序博客网 时间:2024/04/30 14:02
void func1{//加写锁//todo some thing//释放写锁}void func2{//加写锁//todo some thing //释放写锁}void func{func1();//todo some thingfunc2();}

对于多线程并行调用func()而言,func函数实现就有问题,会导致业务乱序,不可用。
原因是:
假若A线程执行func1时先获取到写锁,等释放写锁时,B线程执行func1,获取到写锁,
那么A线程执行func2时,就得等待B线程释放写锁。
总结:能一次进临界区的时候,不要多次进。
0 0
原创粉丝点击