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

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


<syntaxhighlight lang='go' run>
<syntaxhighlight lang='go' run>
29번째 줄: 32번째 줄:
==같이 보기==
==같이 보기==
* [[고루틴]]
* [[고루틴]]
* [[고루틴 vs 스레드]]


[[분류: Go]]
[[분류: Go]]

2022년 6월 6일 (월) 04:49 기준 최신판

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 }}