加了把大锁，重构代码