梗概
- 某些公共资源被占用的时候, 就需要对这些资源加把锁, 防止被其他操作
- 类的成员变量就属于公共资源 - 当其他线程重复修改加锁内容时, 排入队列
- 在类中维护操作队列
加锁方式
- 拒绝公共资源的未授权的修改操作
- 封锁公共资源操作入口
示例
对于类中的成员变量, 进入操作时锁住操作入口, 操作完成后, 再开放操作入口
示例网络
以请求系统为例:
- 处理冲突:
- 对于同实例重复操作的冲突,可以监听冲突结束
- 采取队列处理
- 或直接封堵
- 对于http请求对网络资源的冲突,冲突结束不可监听
- 采取随机退避处理
适用范围
作用
防止出现数据不一致或者数据污染。
缺点
- 一般而言,加锁之后会降低执行效率