Java NIO 文件锁
有一天我遇到了这个异常 OverlappingFileLockException,原因是对上了锁的文件操作
https://docs.oracle.com/javase/7/docs/api/java/nio/channels/OverlappingFileLockException.html
了解了一下文件锁相关内容与java NIO如何进行文件锁相关的操作
首先了解一下NIO,这里有
http://www.ibm.com/developerworks/cn/education/java/j-nio/j-nio.html
http://tutorials.jenkov.com/java-nio/index.html
java nio对文件锁的操作
http://aofengblog.blog.163.com/blog/static/631702120089276182626/
http://www.java2s.com/Tutorials/Java/Java_io/0950__Java_nio_File_Locks.htm
- 可以实现对整个文件或文件部分上锁
- 文件实际上锁的操作由操作系统完成
- 独占锁与共享锁
- 独占锁只允许一个进程占有
- 允许多个进程对同一个文件使用共享锁
- 文件锁是一个java.nio.channels.FileLock对象
- 通过lock()与tryLock()两种方法从通道对象FileChannel获取所,前者为阻塞,后者非阻塞,申请不到立即返回null,这两各方法若不带参数表示锁整个文件,若带参数表示锁部分文件
- isShared()方法返回锁是否是共享锁
代码示例待添加