-
Notifications
You must be signed in to change notification settings - Fork 0
/
33.Tickers.go
45 lines (33 loc) · 1.26 KB
/
33.Tickers.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/*
Title: 33.Tickers.go
Author: OpenSource
Date: 2017-05-21
Description: For Study
Timers[exam - 32] are for when you want to do something once in the future -
tickers are for when you want to do something repeatedly at regular intervals.
Here’s an example of a ticker that ticks periodically until we stop it.
*/
package main
import "time"
import "fmt"
func main() {
fmt.Println("33.Tickers.go---------Start------------\n\n")
ticker := time.NewTicker(time.Millisecond * 500)
fmt.Println("ticker := time.NewTicker(time.Millisecond *500) => ", ticker)
//Tickers use a similar mechanism to timers: a channel that is sent values.
// Here we’ll use the range builtin on the channel to iterate over the values
// as they arrive every 500ms.
go func(){
for t := range ticker.C {
fmt.Println("Tick at", t)
}
}()
// Tickers can be stopped like timers.
// Once a ticker is stopped it won’t receive any more values on its channel.
// We’ll stop ours after 1600ms.
time.Sleep(time.Millisecond * 1600)
ticker.Stop()
fmt.Println("Ticker Stopped")
fmt.Println("33.Tickers.go----------End-------------")
// When we run this program the ticker should tick 3 times before we stop it.
}