- package main
- import "fmt"
- import "time"
- func main() {
- t := time.NewTimer(2 * time.Second)
- //v := <- t.C
- //fmt.Println(v)
- go onTime(t.C)
- fmt.Println("main thread")
- time.Sleep(10 * time.Second)
- }
- func onTime(c <-chan time.Time) {
- for now := range c {
- // now := <- c
- fmt.Println("onTime", now)
- }
- }
- package main
- import "fmt"
- import "time"
- func main() {
- time.AfterFunc(5 * time.Second, f1)
- time.AfterFunc(2 * time.Second, f2)
- fmt.Println("main thread")
- time.Sleep(10 * time.Second)
- }
- func f1() {
- fmt.Println("f1 done !")
- }
- func f2() {
- fmt.Println("f2 done !")
- }
- package main
- import "fmt"
- import "time"
- var count int = 0
- func main() {
- t := time.Tick(2 * time.Second)
- i := 0
- for now := range t {
- fmt.Println(now, doSomething())
- i++
- if i > 10 {
- break
- }
- }
- }
- func doSomething() int {
- count++
- return count
- }
本文探讨了使用Go语言进行并发编程,通过创建定时任务来实现特定操作的周期性执行,详细介绍了使用Timer和AfterFunc函数的方法,并展示了如何在主线程中等待定时任务完成。
5万+

被折叠的 条评论
为什么被折叠?



