Java NIO 文件锁

本文介绍了Java NIO中文件锁的基本概念,包括独占锁和共享锁的区别,以及如何使用FileChannel的lock()和tryLock()方法来锁定整个文件或部分文件。还探讨了操作系统在文件实际上锁过程中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

代码示例待添加

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值