goroutine2 Effective Go - Concurrency - 1 - 출처: https://go.dev/doc/effective_go#concurrency - Share by communicating 동시성 프로그래밍은 매우 방대한 주제이다. 동시성 프로그래밍은 공유 변수에 대한 정확한 접근을 구현하기 위해 요구되는 미묘한 부분 때문에 어려운 주제이기도 하다. Go 언어는 공유되는 값들이 channel 이라는 개념을 통해 전달되고, 실제로는 실행되는 각 스레드들에서 공유가 활성화되지 않는 색다른 접근방식을 제안한다. 어느 시점에서든 하나의 값에는 하나의 goroutine만 접근이 가능하다. 이런 설계때문에 data race가 일어나지 않는다. effective go 문서에서는 이런 사고방식을 장려하기 위해 하나의 슬로건으로 이를 요약하고 있다. Do not commun.. 2022. 6. 1. Go - Concurrency - 출처: https://quii.gitbook.io/learn-go-with-tests/go-fundamentals/concurrency - 개요 Go의 병렬 프로그래밍인 concurrency(go 문법)에 대해 알아보자. goroutine과 channel을 사용해본다. - CheckWebsites 예제 아래와 같이 URL 들의 응답 상태를 확인하는 CheckWebsites 함수가 있다고 하자. package concurrency type WebsiteChecker func(string) bool func CheckWebsites(wc WebsiteChecker, urls []string) map[string]bool { results := make(map[string]bool) for _, url :.. 2022. 1. 4. 이전 1 다음