都是为了避免多线程环境下的二义性问题吧