锁定文件并释放它

锁定文件并释放它

我在 ubuntu 中从不同的终端窗口运行多个线程尝试写入同一个文件。

我想在写入时通过终端锁定文件,以便其他线程必须等待锁定释放才能写入。我该怎么做?

答案1

对于三个相互竞争的 shell 脚本来说,使用flock可能是最简单的方法。假设您有一个名为 的锁定文件的单一路径/run/lock/myapp

# in terminal 1
flock /run/lock/myapp sleep 10

# in terminal 2
flock /run/lock/myapp echo "hello"

如果您大约同时运行这些(虽然第一个先运行),第二个将等待 10 秒后再运行。

如果您深入研究另一种编程语言,那么会有其他方法可以更好地处理这个问题。

相关内容