golang包“ net / http”使用全局变量DefaultServeMux来注册处理程序。这被认为是一种很好的做法,甚至被认为是golang的成语?毕竟是全局变量吗?
不使用全局变量的两个主要原因是AFAIK 1)它们增加了复杂性,并且2)在并发程序中存在问题。
也许1)在这种情况下不重要,因为开发人员可以选择不使用DefaultServerMux?那2)呢?全局变量在Go中始终是线程/ goroutine安全的吗?不过,令我感到惊讶的是它在Go的标准库中使用了。我从未在其他语言/标准库中看到过这种做法。
慕尼黑的夜晚无繁华
德玛西亚99
相关分类