梗概

  • 某些公共资源被占用的时候, 就需要对这些资源加把锁, 防止被其他操作
        - 类的成员变量就属于公共资源
  • 当其他线程重复修改加锁内容时, 排入队列
        - 在类中维护操作队列

加锁方式

  • 拒绝公共资源的未授权的修改操作
  • 封锁公共资源操作入口

示例

对于类中的成员变量, 进入操作时锁住操作入口, 操作完成后, 再开放操作入口

示例网络

以请求系统为例:

  • 处理冲突:     - 对于同实例重复操作的冲突,可以监听冲突结束
            - 采取队列处理
            - 或直接封堵
        - 对于http请求对网络资源的冲突,冲突结束不可监听
            - 采取随机退避处理

适用范围

作用

防止出现数据不一致或者数据污染。

缺点

  • 一般而言,加锁之后会降低执行效率