這是我編寫的將請求添加到請求隊列的函數:func (self *RequestQueue) addRequest(request *Request) { self.requestLock.Lock() self.queue[request.NormalizedUrl()] = request.ResponseChannel self.requestLock.Unlock()}這是它的測試之一:func TestAddRequest(t *testing.T) { before := len(rq.queue) r := SampleRequests(1)[0] rq.addRequest(&r) if (len(rq.queue) - 1) != before { t.Errorf("Failed to add request to queue") }}當我運行此測試時,應用程序掛起。如果我注釋掉這個測試,一切正常。我認為問題在于函數內部的鎖定。有什么我做錯了嗎?謝謝你的幫助!
測試包含鎖的函數時,Go 應用程序掛起
慕工程0101907
2021-09-09 15:02:12