本文共 411 字,大约阅读时间需要 1 分钟。
本节书摘来自异步社区《代码整洁之道》一书中的第13章13.6节警惕同步方法之间的依赖,作者【美】Robert C. Martin,更多章节内容可以访问云栖社区“异步社区”公众号查看。
13.6 警惕同步方法之间的依赖
同步方法之间的依赖会导致并发代码中的狡猾缺陷。Java语言有synchronized概念,可以用来保护单个方法。然而,如果在同一共享类中有多个同步方法,系统就可能写得不太正确了[12]。建议:避免使用一个共享对象的多个方法。
有时必须使用一个共享对象的多个方法。在这种情况发生时,有3种写对代码的手段:
基于客户端的锁定——客户端代码在调用第一个方法前锁定服务端,确保锁的范围覆盖了调用最后一个方法的代码;
基于服务端的锁定——在服务端内创建锁定服务端的方法,调用所有方法,然后解锁。让客户端代码调用新方法;适配服务端——创建执行锁定的中间层。这是一种基于服务端的锁定的例子,但不修改原始服务端代码。转载地址:http://ypbzx.baihongyu.com/