Sync

주의반복문에서 고루틴을 돌리면 신기하게 결과물이 나올 때가 있습니다.아래 코드를 실행했을 때의 결과는 무엇일까요?import ( "fmt" "sync")func main() { var wg sync.WaitGroup for _, text := range []string{"a", "b", "c"} { wg.Add(1) go func() { defer wg.Done() fmt.Println(text) }() } wg.Wait()} 만약 a, b, c가 랜덤으로 출력 것이라 생각하신다면 틀렸습니다결과는 아래와 같습니다.ccc 왜 이런 일이이유는 루프문이 고루틴보다 먼저 끝나서 고루틴에서 사용할 수 있도록 메모리를 힙으로 옮겼기 때문입니다.즉 for문이 먼저 끝나서 text의 값은 마지막 c를 가리..
DSeung
'Sync' 태그의 글 목록