上面代码存在的问题是: 1. 当new 操作失败的时候unlock函数是没有执行到的 2. new失败之后还是存储在了成员变量中,记录变量的imageChanges会纪录image改变的次数 修改方法: 1. 定义一个类,在类的构造函数中lock,在析构函数中unlock 2. 修改new以及纪录改变次数变量的使用顺序