java中读锁的作用,为什么要用读锁

java中读锁的作用,为什么要用读锁,第1张

读写锁:ReentrantReadWriteLock

如果有很多线程从一个数据结构中读取数据,而很少的线程修改数据,那么就用读写锁。

分别得到读锁和写锁:

ReentrantReadWriteLock rrwl=new ReentrantReadWriteLock()

ReadLock readL = rrwl.readLock()

WriteLock writeL = rrwl.writeLock()

读锁与读锁不互斥,读锁与写锁互斥,写锁与写锁互斥。

用于优化性能,提高读写速度。

一个读写锁支持多个线程同时访问一个对象,但是在同一时刻只有一个线程可以修改此对象,并且在访问进行时不能修改

RandomAccessFile fis = new RandomAccessFile("shm.lock","rw")

// 获得文件通道

FileChannel lockfc = fis.getChannel()

// 获得文件的独占锁,该方法不产生堵塞,立刻返回

FileLock flock = lockfc.tryLock()

// 如果为空,则表明已经有应用占有该锁

if(flock == null) {

...// 不能执行写 *** 作

}

else {

...// 可以执行写 *** 作

}

该锁会在应用异常退出后自动释放,这正是该处所需要的方法。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/11886681.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存