Java NIO 文件锁

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()方法返回锁是否是共享锁

代码示例待添加

    原文作者:java锁
    原文地址: https://blog.csdn.net/zwt0909/article/details/53035144
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞