感觉严格来说并不是禁止指令的重排序,而是加入了读写屏障使得指令的重排序收到了一定的限制从而避免了singleton对象在创建后但是并未初始化完毕的情况下返回,只能说受限而非禁止,我认为。