상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - Go 언어의 `time.Timer`와 `time.Ticker`의 차이점은 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
Go 언어에서 `time.Timer`와 `time.Ticker`는 모두 시간 기반의 작업을 수행하는 데 사용되지만, 그 목적과 사용 방식에서 중요한 차이점이 있습니다. 이 두 가지를 이해하는 것은 Go에서 <a href='https://sangseek.com/sangseeks/비동기/ko'>비동기</a> 프로그래밍을 할 때 매우 중요합니다. 1. `time.Timer` `time.Timer`는 특정 시간 후에 한 번만 실행되는 타이머입니다. 타이머는 지정된 시간(지연 시간)이 경과한 후에 채널을 통해 신호를 보냅니다. 주로 단일 이벤트를 지연시키거나 특정 시간 후에 작업을 수행할 때 사용됩니다. 사용 예시 ```go package main import ( "fmt" "time" ) func main() { timer := time.NewTimer(2 * time.Second) go func() { <-timer.C fmt.Println("타이머가 만료되었습니다!") }() fmt.Println("타이머를 시작합니다...") time.Sleep(3 * time.Second) fmt.Println("메인 함수가 종료됩니다.") } ``` 위의 예제에서 `time.NewTimer`는 2초 후에 `timer.C` 채널을 통해 신호를 보냅니다. 이 신호를 수신하면 "타이머가 만료되었습니다!"라는 메시지가 출력됩니다. 주요 특징 - 단일 이벤트 : 타이머는 한 번만 만료됩니다. - 지연 실행 : 특정 시간 후에 작업을 수행할 수 있습니다. - 취소 가능 : 타이머는 `Stop()` 메서드를 사용하여 취소할 수 있습니다. 2. `time.Ticker` `time.Ticker`는 일정한 간격으로 반복적으로 이벤트를 발생시키는 타이머입니다. 주로 주기적으로 작업을 수행해야 할 때 사용됩니다. `Ticker`는 지정된 간격마다 `C` 채널을 통해 신호를 보냅니다. 사용 예시 ```go package main import ( "fmt" "time" ) func main() { ticker := time.NewTicker(1 * time.Second) go func() { for t := range ticker.C { fmt.Println("현재 시간:", t) } }() time.Sleep(5 * time.Second) ticker.Stop() fmt.Println("Ticker가 중지되었습니다.") } ``` 위의 예제에서 `time.NewTicker`는 <a href='https://sangseek.com/sangseeks/1초/ko'>1초</a> 간격으로 현재 시간을 출력합니다. 5초 후에 `ticker.Stop()`을 호출하여 Ticker를 중지합니다. 주요 특징 - 반복 이벤트 : Ticker는 지정된 간격마다 반복적으로 신호를 보냅니다. - 주기적 작업 : 주기적으로 작업을 수행할 수 있습니다. - 중지 가능 : Ticker는 `Stop()` 메서드를 사용하여 중지할 수 있습니다. <a href='https://sangseek.com/sangseeks/요약/ko'>요약</a> - 타이머 (`time.Timer`) : 특정 시간 후에 한 번만 실행되는 이벤트를 처리합니다. 주로 지연 실행이 필요할 때 사용됩니다. - 틱커 (`time.Ticker`) : 일정한 간격으로 반복적으로 이벤트를 발생시킵니다. 주기적으로 작업을 수행해야 할 때 유용합니다. 이 두 가지를 적절히 활용하면 Go에서 시간 기반의 비동기 작업을 효과적으로 처리할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기