gflock
安装模块:
接口文档:
https://godoc.org/github.com/gogf/gflock
我们将这个程序运行两次,会生成两个进程,进程ID分别为25694
及25737
(通过ps
命令或者进程管理器查看)。两个进程都会操作同一个文件锁demo.lock
文件,但是只有第一个进程得到了该文件锁操作权限,第二个进程25737
只有等待该文件锁释放之后才能进一步操作,因此被阻塞。程序中的Sleep
操作正是为了演示这一阻塞结果而特意设定的。当第一个进程25694
释放文件锁之后,第二个进程25737
将会立即开始执行。最终的执行结果如下(注意打印时间的差异):
进程1():