将关键部分(资源锁)保留为非分层次序是否安全?

时间:2014-05-16 14:20:03

标签: multithreading winapi synchronization

对于工作线程来说,执行以下操作是不好的做法:

lock(resource_a);
lock(resource_b);
release(resource_a);
release(resource_b);

如果是这样,为什么?我总是按照相反的顺序进行练习(层次结构),如下所示:

lock(resource_a);
lock(resource_b);
release(resource_b);
release(resource_a);

但我无法理解为什么我需要这样做,如果这条规则是理性的话。

我的特定上下文是在Windows中使用CRITICAL_SECTION个对象,但该问题适用于任何资源同步。

0 个答案:

没有答案