2초 후에 메시지를 전달하는 채널 데이터 timer1을 만들었다. 이 코드는 <-timer1.C에서 블럭된다. 2초 후 타이머가 작동해서 메시지를 수신하면 블럭이 풀리고 다음 코드로 진행한다.
Stop() 메서드를 이용해서 타이머를 중단 할 수도 있다. 예제코드에서는 timer2.Stop()를 호출해서 타이머를 중단했다. 타이머가 중단되면 채널로 메시가 전송되지 않는다. 따라서 worker 고루틴은 <-timer2.C 에서 블락된다. Worker 고루틴이 메시지를 받기 전에 main() 고루틴이 종료되므로, worker 고루틴은 코드를 완료하지 못하게 된다. Reset메서드를 이용해서 타이머를 재 설정 할 수도 있다.
Tickers
예제로 살펴보는 Go : 타이머
package main import ( "time" "fmt" ) func main() { time1 := time.NewTimer(time.Second * 2) <- time1.C fmt.Println("Timer 1 expired") timer2 := time.NewTimer(time.Second * 1) go func() { <-timer2.C fmt.Println("Timer 2 expired") }() stop2 := timer2.Stop() if stop2 { fmt.Println("Timer 2 stopped") } }Recent Posts
Archive Posts
Tags