반응형
Concurrency
-
[Golang] fatal error: concurrent map writes레거시/트러블슈팅 2022. 4. 4. 19:19
문제 상황 golang 개발 중, map 객체에 어떤 값을 저장하여, 이를 이용하는 서비스를 만든다고 해보자. 처음에는 쉽게 다음과 같이 WriteMap 함수를 이용해서 코드를 간단하게 작성할 수 있다. package main import "fmt" func WriteMap(m map[int]int, num int) { for i := 0; i < num; i++ { m[i] = i } } func main() { fmt.Println("map writes start!") m := map[int]int{} WriteMap(m, 100) fmt.Println("map writes end!") } 이 때, 고루틴을 이용하여 WriteMap 함수의 성능 향상을 계획했다고 가정해보자. 그럼 코드는 이렇게 바꿀 ..