在创建TensorFlow优化器或变量赋值操作时,传递use_locking=True会导致在变量的相关更新周围获取锁。在相同变量上使用use_locking=True创建的其他优化器/赋值操作也将被串行化。 然而,当使用此选项时,有两个注意事项: 变量的读取不在锁下执行,因此可能会看到中间状态和部分应用的更新。序列化读取需要额外的协调,例如由tf.train.SyncReplicasOptimizer提供。 对于相同变量的写入(优化器/赋值操作)仍然可以使用use_locking=False,并且不会获取锁。程序员需要确保这些写入不会发生。