老师你好!还是关于ReentrantReadWriteLock的问题

来源:5-8 并发容器及安全共享策略总结

qq_湿腻焦糊_0

2018-08-27

在《Java并发编程》中,关于ReentrantReadWriteLock的读写锁的升降级问题。书上说一个线程持有写锁的同时,可以再去获取读锁,同时不允许其他写线程修改资源?这个不是很明白,还有就是书里称写线程获取读锁的行为是锁的降级(写入锁降级为读取锁),而不支持读取锁升级(为什么读取锁变为写入锁就是升级,而写入锁变为读取锁就是降级?)为写入锁(书上说是因为怕升级导致死锁??

写回答

1回答

Jimin

2018-08-27

你好,从写锁变成读锁属于锁降级,从读锁变成写锁属于锁升级,因为读锁是可以被多线程共享的,写锁是单线程独占的,写锁的并发限制比读锁高,这应该就是升级和降级名称的来源。

读锁升级为写锁,确实有可能导致死锁,这个之前有学员问过,具体可以参考:http://coding.imooc.com/learn/questiondetail/49267.html


0
0

Java高并发编程,构建并发知识体系,提升面试成功率

构建完整并发与高并发知识体系,倍增高薪面试成功率!

3923 学习 · 832 问题

查看课程