java OverlappingFileLockException文件锁

大家好,我是知秋君,一个会写博客吟诗的知秋码农。今天说一说java OverlappingFileLockException文件锁,希望能够帮助大家进步!!! RandomAccessFile file = new RandomAccessFile ( "test.txt" , "rw" ) ; FileChannel fileChannel = file . getChannel ( ) ;

大家好,我是知秋君,一个会写博客吟诗的知秋码农。今天说一说java OverlappingFileLockException文件锁,希望能够帮助大家进步!!!

RandomAccessFile file = new RandomAccessFile("test.txt", "rw"); FileChannel fileChannel = file.getChannel(); FileLock lock = fileChannel.lock(); 
只听到从知秋君办公室传来知秋君的声音:

情人怨遥夜,竟夕起相思。有谁来对上联或下联?

上面的java文件锁是进程级别的,也就是说,如果一个进程的一个线程获取锁后,在没有释放该锁之前又有另外一个线程要获取同一个文件的锁,这时这个线程并不会等待,而是会抛出OverlappingFileLockException

解决方法:使用synchronized

此代码由一叶知秋网-知秋君整理
synchronized (o) {

RandomAccessFile file = new RandomAccessFile("test.txt", "rw"); FileChannel fileChannel = file.getChannel(); FileLock lock = fileChannel.lock(); }
知秋君
上一篇 2024-07-03 15:32
下一篇 2024-07-03 15:32

相关推荐