移动命令中的多线程死锁

问题描述

对于另一个必须多线程的文件系统,尝试在Linux中实现类似于move命令的命令时遇到以下问题。

当我尝试执行以下操作时:'''mv / a / b / a'''程序将锁定用于写入的根目录和用于写入的a。然后,由于无法释放锁,因为其他线程可能会获取它们,所以当我尝试锁定根目录以在move命令的目标中进行读取时,我陷入了死锁的情况。

我正在设法解决这个问题。以我的代码现在的方式,给定路径/ x / y / z时,它会锁定每个目录,以供读取或写入,具体取决于我要执行的命令。因此,使用该命令,我能够确定是否可以将/ a写入/ b / a,因为它会检查/ a是否存在以及/ b / a是否存在,但是我仍然需要解决死锁情况

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)