저작권 안내
- 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
- 책 또는 웹사이트의 내용을 발췌, 요약하여 강의 자료, 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.
고루틴 사용하기
이재홍 http://www.pyrasis.com 2014.12.17 ~ 2015.02.07
멀티코어 활용하기
Go 언어는 CPU 코어를 한 개만 사용하도록 설정되어 있습니다. 다음은 시스템의 모든 CPU 코어를 사용하는 방법입니다.
package main
import (
"fmt"
"runtime"
)
func main() {
runtime.GOMAXPROCS(runtime.NumCPU()) // CPU 개수를 구한 뒤 사용할 최대 CPU 개수 설정
fmt.Println(runtime.GOMAXPROCS(0)) // 설정 값 출력
s := "Hello, world!"
for i := 0; i < 100; i++ {
go func(n int) { // 익명 함수를 고루틴으로 실행
fmt.Println(s, n)
}(i)
}
fmt.Scanln()
}
runtime.NumCPU 함수로 현재 시스템의 CPU 코어 개수를 구한 뒤 runtime.GOMAXPROCS 함수에 설정해줍니다. 이렇게 하면 모든 CPU 코어에서 고루틴을 실행할 수 있습니다.
runtime.GOMAXPROCS 함수는 CPU 코어 개수를 구하지 않고, 특정 값을 설정해도 됩니다. 그리고 runtime.GOMAXPROCS 함수에 0을 넣으면 설정 값은 바꾸지 않으며 현재 설정 값만 리턴합니다.
저작권 안내
이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.- 블로그, 게시판 등에 퍼가는 것을 금지합니다.
- 비공개 포스트에 퍼가는 것을 금지합니다.
- 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
- 링크 및 SNS 공유는 허용합니다.