1. 由于需要,一个业务程序一天之中可能要被多次使用,但同一时间只能有一个人使用,于是我们得想个办法保证互斥。
进程间通信有很多种方式,信号量就不错。但学习使用下文件锁,更简洁一点。
2. 文件系统级别的锁有四种,最基本的两种是劝告锁和强制锁,剩下的两种是强制锁的变种。
应用级别上对锁的操作有两种,加读锁,或者加写锁(又叫共享锁与独占锁)。
那么,平时所说的加锁,实际上应该是在劝告锁或者强制锁上加读或者写锁。
3. 基本思路是,程序每次运行就打开一个固定的文件,试图加上写锁(独占性),如果之前已经有进程运行了,那么加锁操作就会失败,程序
退出,否则程序运行,直到结束(正常结束或者异常退出)都不会有其它进程运行起来。
4. 代码如下: