【发布时间】:2016-10-23 18:44:31
【问题描述】:
我正在寻找源代码的大猩猩上下文。我不明白它的作用是同步、互斥锁、互斥锁、解锁。当我从源代码中删除 mutex.Lock 和 Mutex.Unlock 时,它仍在运行。
import (
"net/http"
"sync"
"time"
)
var (
mutex sync.RWMutex
data = make(map[*http.Request]map[interface{}]interface{})
datat = make(map[*http.Request]int64)
)
// Set stores a value for a given key in a given request.
func Set(r *http.Request, key, val interface{}) {
mutex.Lock()
if data[r] == nil {
data[r] = make(map[interface{}]interface{})
datat[r] = time.Now().Unix()
}
data[r][key] = val
mutex.Unlock()
}
【问题讨论】:
标签: go synchronization mutex