我搜索了bash如何创建mutex。我遇到了两种不同的方式来创建bash中的哑光。两者都是stackoverflow答案,并且都具有> 100个upvotes:一个答案使用mkdir
,另一个答案使用flock
。
在创建sutex时在bash中,我应该使用 flock
或 mkdir
?
阅读两个答案,这两个答案似乎都提供了一种创建互惠码的解决方案,但是在某些情况下,您需要使用 flock
,而在某些情况下,您需要使用mkdir
:
-
如果您已经需要强大/测试的功能,例如超时,阻止等等 ->使用
flock
- 内置超时
- 内置支持阻止或非块的支持
- 内置的支持用于删除二线后
-
如果您的发行版没有
flock
->您被迫使用mkdir
- 如果您需要
flock
提供的任何超时或其他功能,则必须重新发明轮子 - 使用
mkdir
创建互斥性意味着您的代码不会立即传达目的 ->使用flock
表示您的代码说明自己说"此代码正在实现同步" - 大多数人都不熟悉
mkdir
是创建静音的有效解决方案,因此以这种方式使用mkdir
可能会使您的代码具有更多的代码气味(尤其是如果您的发行版具有flock
,并且您选择不使用它)
- 如果您需要