文件锁-FileLock

本文介绍了Java的FileLock机制,它作为独占锁用于控制不同JVM对同一文件的并发访问。FileLock只允许一个进程进行写操作,确保进程间顺序访问,防止数据错误。当锁通过release()、Channel.close()或JVM关闭时,生命周期结束。此外,lock和tryLock只能调用一次,释放后才能重新获取。在FileLock结束时,通过deleteOnExit()可删除文件,但在强制关闭JVM时不生效。Flume框架也使用了FileLock。
摘要由CSDN通过智能技术生成

最近在看flume部分功能的源码,关于FileLock的使用,其实在很多开源框架都有涉及,我所看过的有lucene,zookeeper,hadoop,es等开源框架都有用到,下面简单的介绍下FileLock。

        1,FileLock是独占锁,控制不同程序(JVM)对同一文件的并发访问。
        2,可以对写文件(w)加锁,而且必须是可写文件,不然回报:java.nio.channels.NonWritableChannelException异常,这样可以保证只有同一个进程才能拿到锁对文件访问。其他进程无法访问改文件,或者删除该文件的目录。

        3,由于是独占锁,所以可以保证进程间顺序访问该文件,避免数据错误。s

        4,FileLock的生命周期,在调用FileLock.release(),或者Channel.close(),或者JVM关闭,则生命周期结束。

        5,FileLock的lock和tryLock只能调用一次,释放后才能继续获得锁。

 

java.io.File.deleteOnExit() 在

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值