正如 icza 所说:
如果你让你的应用程序保持这样并且它不会崩溃,你可能会在运行时遇到神秘的、未定义的行为。
如果在“并发映射写入”的情况下,一个 goroutine 无法写入映射,那么仅panic("concurrent map writes")代替throw("concurrent map writes").
运行时无法检测场比赛,但它可以检测时的内部状态map已经由数据争损坏,而这正是throw("concurrent map writes")和throw("concurrent map read and map write")是(throw被广泛使用在运行时,中止程序时,有没有安全的方法继续)。使用panichere 意味着您可以从这种情况中恢复,但没有办法恢复,因为已经知道程序状态已损坏。