成都网站建设设计

将想法与焦点和您一起共享

Java中ReentrantReadWriteLock类的使用

这篇文章主要介绍“Java中ReentrantReadWriteLock类的使用”,在日常操作中,相信很多人在Java中ReentrantReadWriteLock类的使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java中ReentrantReadWriteLock类的使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

创新互联-专业网站定制、快速模板网站建设、高性价比寒亭网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式寒亭网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖寒亭地区。费用合理售后完善,十多年实体公司更值得信赖。

ReentrantReadWriteLock与ReentrantLock的区别:

ReentrantLock:同一时间只能有一个线程执行ReentrantLock.lock()后面的代码,这样虽然可以保证线程安全,但程序的运行效率却比较低。

ReentrantReadWriteLock:有两种锁也就是分别有读和写两种锁,在不需要操作实例变量时,可用读锁,在操作实例变量时,用写锁,这样就可以提升程序的运行效率。

共享锁:读相关的锁就叫共享锁。

排他锁:写相关的锁就叫排他锁。

我们首先看一下共享锁:

Java中ReentrantReadWriteLock类的使用

Java中ReentrantReadWriteLock类的使用

Java中ReentrantReadWriteLock类的使用

Java中ReentrantReadWriteLock类的使用

我们看两个线程是异步执行的,这就是共享锁的好处,多个线程可以同时执行lock()方法后面的代码,提高程序的执行效率。下面我们看一下排他锁:

Java中ReentrantReadWriteLock类的使用

Java中ReentrantReadWriteLock类的使用

Java中ReentrantReadWriteLock类的使用

Java中ReentrantReadWriteLock类的使用

我们看输出是同步执行的。这也是排他锁的特性,如果线程中有操作实例变量的操作,为了保证线程安全可以用排他锁。

共享锁和排他锁也是互斥锁。这句话的意思是说如果线程已经获取到了共享锁,但程序没有执行完,那么此时,其它线程在获取排他锁时,是获取不到的,只能等待共享锁释放后才可获取到。

Java中ReentrantReadWriteLock类的使用

Java中ReentrantReadWriteLock类的使用

Java中ReentrantReadWriteLock类的使用

Java中ReentrantReadWriteLock类的使用

Java中ReentrantReadWriteLock类的使用

到此,关于“Java中ReentrantReadWriteLock类的使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


网站标题:Java中ReentrantReadWriteLock类的使用
网站路径:http://chengdu.cdxwcx.cn/article/ihggic.html