图解java多线程设计模式----Read-Write Lock模式学习笔记
**
图解java多线程设计模式
—Read-Write Lock模式学习笔记
- 先上一张类图
- 通过观察,我发现多线程设计模式有一个共性,他们主要对锁,共享资源,线程类三个方面进行设计,分别作用如下
1.锁类:
负责多线程环境下的协调调度线程的工作
2.共享资源类:
其中维护了共享变量,锁实例和定义了操作共享资源的逻辑方法
3.线程类:
定义调用共享资源的方法的步骤逻辑 -
优点
①通过解耦功能模块进行设计,提高了代码的可维护性,逻辑清晰易于理解.
②因为易于维护,从另外一方面来说,也是提高了程序的安全性
③好像锁类这种大多数情况代码可以复用 -
关于Read-Write Lock模式
Read-Write顾名思义就是读写分离,在这里不对模式实现细节进行分析,我们从宏观的角度去思考
1.适合读取操作繁重时进行使用,可以提高性能
因为该模式Read操作是可以多线程同时操作
2.在写和读频率相同或者写更高频的的情况下
在这种情况下,该模式的优势就得不到体现,有时还不如使用SingleThreadedExecution模式来得更好
3.关于读写锁的实现
它的实现基础是synchronized物理锁,利用了Guarded Suspension模式进行实现,守护的条件就是监控在读线程数量变量和在写线程数量变量的参数状态.