본문 바로가기
Programming/Golang

Go언어 초간단 async 예제

by Wilkyway 2020. 3. 16.
반응형

Go언어의 장점 중 하나로 비동기 함수실행을 매우 쉽게 구현한다는 점입니다.

비동기 프로그래밍을 직접 해본적이 없어서 잘은 모르지만, 아래 예제를 보니 정말 쉬운 것 같습니다.

package main

import (
	"fmt"
	"time"
)

func say(s string) {
	for i := 0; i < 10; i++ {
		fmt.Println(s, "***", i)
	}
}

func main() {
	// 함수를 동기적으로 실행
	say("Sync")

	// 함수를 비동기적으로 실행
	go say("Async1")
	go say("Async2")
	go say("Async3")

	// 3초 대기
	time.Sleep(time.Second * 3)
}

 

결과

C:/Go/bin/go.exe build [D:/5.System_dev/7_GO/async]
Success: process exited with code 0.
D:/5.System_dev/7_GO/async/async.exe  [D:/5.System_dev/7_GO/async]
Sync *** 0
Sync *** 1
Sync *** 2
Sync *** 3
Sync *** 4
Sync *** 5
Sync *** 6
Sync *** 7
Sync *** 8
Sync *** 9
Async2 *** 0
Async1 *** 0
Async1 *** 1
Async1 *** 2
Async1 *** 3
Async1 *** 4
Async1 *** 5
Async1 *** 6
Async1 *** 7
Async1 *** 8
Async1 *** 9
Async2 *** 1
Async2 *** 2
Async2 *** 3
Async2 *** 4
Async2 *** 5
Async2 *** 6
Async2 *** 7
Async2 *** 8
Async2 *** 9
Async3 *** 0
Async3 *** 1
Async3 *** 2
Async3 *** 3
Async3 *** 4
Async3 *** 5
Async3 *** 6
Async3 *** 7
Async3 *** 8
Async3 *** 9
Success: process exited with code 0.

-끝-

반응형

댓글