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

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

概述我想在 linux上的perl程序中快速实现某种锁定,这可以在不同的进程之间共享. 所以我使用mkdir作为原子 *** 作,如果目录不存在则返回1,如果存在则返回0.我在关键部分后立即删除目录. 现在,有人向我指出,这不是一般的好习惯(独立于语言).我认为这很好,但我想问你的意见. 编辑: 举一个例子,我的代码看起来像这样: while (!mkdir "lock_dir") {wait some ti 我想在 linux上的perl程序中快速实现某种锁定,这可以在不同的进程之间共享.

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

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

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

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

以上是内存溢出为你收集整理的在Linux上使用mkdir作为基于文件的锁定是一种好习惯吗?全部内容,希望文章能够帮你解决在Linux上使用mkdir作为基于文件的锁定是一种好习惯吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1021083.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存