## 一、概念
* Timer:時間到了,響應一次
* Ticker,不停地響應
## 二、Timer定時器實例
~~~
package main
import (
"time"
"fmt"
)
func main() {
////1.創建定時器
//timer1 := time.NewTimer(time.Second * 2)
////打印系統當前時間
//t1 := time.Now()
//fmt.Printf("t1:%v\n", t1)
//t2 := <-timer1.C
//fmt.Printf("t2:%v\n", t2)
//2.timer響應
//timer2 := time.NewTimer(time.Second)
//for {
// <-timer2.C
// fmt.Println("時間到")
//}
//3.timer延時
//time.Sleep(2 * time.Second)
//fmt.Println("2秒時間到")
//timer3 := time.NewTimer(3 * time.Second)
//<-timer3.C
//fmt.Println("3秒時間到")
//4.停止定時器
//timer4 := time.NewTimer(3 * time.Second)
//go func() {
// <-timer4.C
// fmt.Println("定時器時間到了")
//}()
////停止定時器
//stop := timer4.Stop()
//if stop {
// fmt.Println("timer4已經關閉")
//}
//for {
//}
//5.重置定時器
//timer5 := time.NewTimer(3 * time.Second)
//timer5.Reset(time.Second)
//fmt.Println(time.Now())
//fmt.Println(<-timer5.C)
//
//for {
//}
}
~~~
## 三、Ticker定時器實例
~~~
package main
import (
"time"
"fmt"
)
func main() {
////1.創建定時器
ticker := time.NewTicker(time.Millisecond)
i := 0
go func() {
for {
<-ticker.C
fmt.Println(<-ticker.C)
i++
fmt.Println("i=", i)
//停止定時器
if i == 5 {
ticker.Stop()
}
}
}()
for {
}
}
~~~
- 一、數組
- 二、切片
- 三、copy
- 四、MAP
- 五、結構體
- 六、結構體參數
- 七、面向”對象“
- 1、匿名字段
- 2、方法
- 3、包和封裝
- 4、接口
- 5、異常處理
- 八、Json
- 九、文件操作
- 1、寫文件
- 2、讀取文件內容
- 3、拷貝文件
- 十、反射
- 1、查看類型,字段和方法
- 2、查看匿名字段
- 3、修改基本類型的值
- 4、修改結構體的值
- 5、調用方法
- 十一、并發編程
- 1、并行和并發
- 2、協程
- 3、runtime包
- 5、channel的使用
- 6、close
- 7、定時器
- 8、select
- 9、協程同步鎖
- 十二、socket編程
- 十三、Http編程
- 十四、并發爬蟲和數據處理
- 1、簡易爬蟲實例
- 2、并發爬取圖片
- 3、讀文件中的數據
- 4、數據清洗
- 其他
- 1、推薦文章