尽量不要递归锁，对外开放哪些，可以使用原子变量。