나는 다음과 같은 코드를 실행하면 :이동지도가 concurency 테스트를 실패
import (
"log"
"sync"
"testing"
"time"
)
func TestConcurrency(t *testing.T) {
var mutex sync.RWMutex
dictionary := make(map[interface{}]interface{})
go func() {
var value interface{}
for {
go func() {
mutex.Lock()
dictionary["Key"] = ""
mutex.Unlock()
}()
go func() {
mutex.RLock()
value = dictionary["Key"]
mutex.RUnlock()
}()
}
log.Println(value)
}()
}
사용 :
go test -race fileName.go
그것은 결과를 :
Found 1 data race(s)
어떻게이 문제를 해결할 수 있습니까?
많은 동시 쓰기 및 읽기가 있습니다.