锁定文件并将其释放

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

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

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

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

如果你在大约相同的时间(第一个第一个)运行它们,第二个将在运行前等待10秒。

如果你深入了解另一种编程语言,那么还有其他方法可以更好地处理这种语言。