"Go repeatTask"의 두 판 사이의 차이

3번째 줄: 3번째 줄:
;Go 백그라운드 반복 작업
;Go 백그라운드 반복 작업
* 고루틴으로 메인 흐름 외에 별도의 흐름을 만든 것
* 고루틴으로 메인 흐름 외에 별도의 흐름을 만든 것
* 동일 프로세스 내에서 작동하므로 백그라운드는 아니지만, 백그라운드 작업처럼 활용할 수 있다...
* 동일 프로세스 내에서 작동하므로 일반적인 의미의 백그라운드 실행은 아니지만, 백그라운드 작업으로 활용할 수 있다...
* 프로세스 내에서 작동한다는 점에서 스레드와도 유사한데, 스레드는 OS 커널이 관리하는 반면 고루틴은 Go 런타임이 관리한다.
* 프로세스 내에서 작동한다는 점에서 스레드와도 유사한데, 스레드는 OS 커널이 관리하는 반면 고루틴은 Go 런타임이 관리한다.



2022년 6월 6일 (월) 04:48 판

1 개요

Go repeatTask
Go 백그라운드 반복 작업
  • 고루틴으로 메인 흐름 외에 별도의 흐름을 만든 것
  • 동일 프로세스 내에서 작동하므로 일반적인 의미의 백그라운드 실행은 아니지만, 백그라운드 작업으로 활용할 수 있다...
  • 프로세스 내에서 작동한다는 점에서 스레드와도 유사한데, 스레드는 OS 커널이 관리하는 반면 고루틴은 Go 런타임이 관리한다.
package main

import (
	"fmt"
	"time"
)

func repeatTask() {
	for {
		fmt.Println("task")
		time.Sleep(500 * time.Millisecond)
	}
}

func main() {
	go repeatTask()
	for i := 0; i < 3; i++ {
		time.Sleep(1000 * time.Millisecond)
		fmt.Println(i)
	}
}

2 같이 보기

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}