Go 언어

본문 바로가기
사이트 내 전체검색


Go 언어
Go 언어

1. 고루틴 사용하기

페이지 정보

작성자 관리자 댓글 0건 조회 2,478회 작성일 19-03-12 07:30

본문

1. 고루틴 사용하기

고루틴(Goroutine)은 함수를 동시에 실행시키는 기능이다.

다른 언어의 쓰레드 생성 방법보다 문법이 간단하고, 스레드보다 운영체제의 리소스를적게 사용하므로 많은 수의 고루틴을 쉽게 생성할 수 있다.


go 함수



함수를 호출할 때 앞에 go 키워드를 붙이면 해당 함수는 고루틴으로 실행된다.



package main

import "fmt"

func hello() {

 fmt.Println("Hello, world!")

}

func main() {

 go hello() // 함수를 고루틴으로 실행

 fmt.Scanln() // main 함수가 종료되지 않도록 대기

} 


fmt.Scanln을 사용하여 main함수가 종료되지 않도록 대기시킨다. 엔터를 입력하면 대기를 끝낼 수 있다.


반복문을 사용하여 고루틴을 100개를 생성한다.


package main

import (

 "fmt"
 "math/rand"
 "time"

)

func hello(n int) {

 r := rand.Intn(100)          // 랜덤한 숫자 생성
 time.Sleep(time.Duration(r)) // 랜덤한 시간 동안 대기
 fmt.Println(n)               // n 출력

}

func main() {

 for i := 0; i < 100; i++ { // 100번 반복하여

  go hello(i)        // 고루틴 100개 생성

 }

 fmt.Scanln()

}

고루틴을 종료하려면 함수 안에서 return으로 빠져나오거나 runtime.Goexit 함수를 사용하면 된다.

리턴값은 사용할 수 없다. 리턴에 값이나 변수를 지정하더라도 무시된다.



댓글목록

등록된 댓글이 없습니다.


개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.