2 回答

TA贡献1854条经验 获得超8个赞
的同步包有一些同步原语。根据问题,您可以使用RWMutex或普通的Mutex。
如果您想要更具体的答案,请提供更多信息。
编辑:阅读链接的问题后,您可能正在寻找sync / atomic,尽管Mutex也很好。
Edit2:我看到您用示例更新了您的帖子。这是使用同步/原子的代码。
func makeHomeHandler() func(w http.ResponseWriter, r *http.Request) {
var views *uint64 = new(uint64)
atomic.StoreUint64(views, 0) // I don't think this is strictly necessary
return func(w http.ResponseWriter, r *http.Request) {
// Atomically add one to views and get the new value
// Perhaps you want to subtract one here
views_now := atomic.AddUint64(views, 1)
fmt.Fprintf(w, "Counting %s, %d so far.", r.URL.Path[1:], views_now)
}
}
- 2 回答
- 0 关注
- 194 浏览
添加回答
举报