加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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

发布时间:2020-12-13 23:50:09 所属栏目:Linux 来源:网络整理
导读:我想在 linux上的perl程序中快速实现某种锁定,这可以在不同的进程之间共享. 所以我使用mkdir作为原子操作,如果目录不存在则返回1,如果存在则返回0.我在关键部分后立即删除目录. 现在,有人向我指出,这不是一般的好习惯(独立于语言).我认为这很好,但我想问你的
我想在 linux上的perl程序中快速实现某种锁定,这可以在不同的进程之间共享.

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

现在,有人向我指出,这不是一般的好习惯(独立于语言).我认为这很好,但我想问你的意见.

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

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

解决方法

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读