我知道有一些关于这个问题的问题和帖子/文章,但从我新手的角度来看,并不完全如此。问题是,我有一个主程序监听端口并将调用重定向到特定的处理程序。典型结构:
func main() {
http.HandleFunc("/something", specificHandler)
http.ListenAndServe(":8080", nil)
}
处理程序类似于:
func specificHandler(w http.ResponseWriter, r *http.Request) {
somepackage.foo()
}
然后somepackage,其中包含函数foo,有一些全局变量,基本上是因为函数需要共享它们(例如,当使用由容器/堆实现的优先级队列时,它将从 Swap 函数中获取优先级全局距离矩阵,当然是可变的)。以及许多其他例子。总之,全局变量...
问题是,正如您可能看到的,这些变量在对处理程序的所有调用之间共享。这很糟糕。
我怎样才能真正解决这个问题?必须有一种简单的方法来做到这一点,我还没有,因为它看起来很平常......
提前致谢。
慕容708150
相关分类