# 定时器与 Ticker

URL: https://caijiao.org/go/05-utils/08-timer-ticker
Source: docs/go/05-utils/08-timer-ticker.md
Description: 本节介绍 Go 语言中定时器（Timer）和周期定时器（Ticker）的用法，实现定时任务和周期执行。

## 1. Timer（定时器）

用于在指定时间后执行操作：

```go
timer := time.NewTimer(2 * time.Second)
<-timer.C
fmt.Println("Timer expired")
````

可以使用 `Reset` 重置定时器：

```go
timer.Reset(3 * time.Second)
```

## 2. Ticker（周期定时器）

用于周期性触发事件：

```go
ticker := time.NewTicker(1 * time.Second)
go func() {
    for t := range ticker.C {
        fmt.Println("Tick at", t)
    }
}()
time.Sleep(5 * time.Second)
ticker.Stop()
```

## 3. 应用场景

* Timer：执行一次性延时任务
* Ticker：实现周期任务，如心跳、定时检查

---

定时器和 Ticker 是实现时间控制的重要工具。
