锁定文件并将其释放
我有多个线程从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秒。
如果你深入了解另一种编程语言,那么还有其他方法可以更好地处理这种语言。