背景:我有几个线程应该访问共享数据。其中一个线程可能会锁定互斥锁,并且在互斥块中,(同一线程的)某些函数可能会再次调用同一锁定。
-我不想创建许多互斥体
-我不想放弃锁定(显然)
-我宁愿不更改设计,因为这是一个很大的改变
void funcB()
{
lock(MA);
...
unlock(MA);
}
void funcA()
{
lock(MA);
...
funcB();
...
unlock(MA);
}
似乎唯一的方法是-使用递归锁。使用此功能有什么缺点吗?
当然,如果您想通过其他方法解决此问题,请分享