[go] sync 패키지를 활용한 병렬 데이터 처리

본 블로그에서는 sync 패키지를 사용하여 병렬 데이터 처리를 하는 방법에 대해 알아보겠습니다. 또한, 예제 코드를 살펴봄으로써 이해를 돕겠습니다.

목차

  1. sync 패키지 소개
  2. 병렬 데이터 처리 예제

1. sync 패키지 소개

Go 언어의 sync 패키지는 고루틴 간의 동기화 및 상호배제를 지원하기 위한 패키지입니다. 이를 통해 병렬 처리를 안전하게 수행할 수 있습니다.

sync 패키지는 다음과 같은 기능을 제공합니다:

2. 병렬 데이터 처리 예제

아래는 sync 패키지를 사용하여 배열의 요소들을 병렬로 처리하는 간단한 예제 코드입니다.

package main

import (
	"fmt"
	"sync"
)

func main() {
	var wg sync.WaitGroup
	data := []int{1, 2, 3, 4, 5}

	for _, v := range data {
		wg.Add(1)
		go func(val int) {
			defer wg.Done()
			processData(val)
		}(v)
	}

	wg.Wait()
	fmt.Println("모든 데이터 처리 완료")
}

func processData(val int) {
	// 데이터 처리 로직
	fmt.Println("처리 중:", val)
}

위 코드에서 WaitGroup을 사용하여 고루틴들의 작업이 모두 완료될 때까지 기다립니다. 이를 통해 안전하게 병렬 처리를 할 수 있습니다.

위 예제 코드를 실행하면, 배열의 각 요소가 고루틴을 통해 병렬로 처리되는 것을 확인할 수 있습니다.

이와 같은 방식으로 sync 패키지를 활용하여 안전하고 효과적인 병렬 데이터 처리를 구현할 수 있습니다.

본 블로그를 통해 sync 패키지를 사용한 병렬 데이터 처리에 대한 이해를 높일 수 있기를 바랍니다.

참고 자료