gpt4 book ai didi

linux - 在 Linux 上使用 mkdir 作为基于文件的锁定是一种好习惯吗?

转载 作者:IT王子 更新时间:2023-10-29 01:06:22 24 4
gpt4 key购买 nike

我想在 linux 上的 perl 程序中快速实现某种锁定,这将在不同进程之间共享。

所以我使用 mkdir 作为原子操作,如果目录不存在则返回 1,如果存在则返回 0。我在关键部分之后删除了目录。

现在,有人向我指出,这通常不是一个好的做法(独立于语言)。我觉得还行,不过想问一下大家的意见。

编辑:举个例子,我的代码看起来像这样:

while (!mkdir "lock_dir") {wait some time}
critical section
rmdir "lock_dir"

最佳答案

恕我直言,这是一个非常糟糕的做法。如果创建锁定目录的 perl 脚本在临界区期间以某种方式被杀死怎么办?另一个等待锁定目录被删除的 perl 脚本将永远等待,因为它不会被最初创建它的脚本删除。要使用安全锁定,请在锁定文件上使用 flock()(请参阅 perldoc -f flock)。

关于linux - 在 Linux 上使用 mkdir 作为基于文件的锁定是一种好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7208447/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com