移动命令中的多线程死锁

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

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

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

duch1999 回答:移动命令中的多线程死锁

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1261492.html

大家都在问