go語言標準庫里的定時器使用場景

2021-10-09 12:00:13 字數 1295 閱讀 3036

(1)time.newtimer,time.newticker,time.tick的使用如下:

package main

import (

"errors"

"fmt"

"golang.org/x/sync/errgroup"

"time"

)/**

* ticker只要定義完成,從此刻開始計時,不需要任何其他的操作,每隔固定時間都會觸發。

* timer定時器,是到固定時間後值只會執行一次

* 如果timer定時器要每隔間隔的時間執行,實現ticker的效果,使用 func (t *timer) reset(d duration) bool

*/func main()

// break

} return nil

}) g.go(func() error

// break

} return errors.new("sgdagf")

}) // 上乙個協程實現的功能一樣的,但這time.tick無法停止,也就是無法釋放資源!

g.go(func() error

// fmt.println(<-time.tick(2 * time.second))

} })

if err := g.wait(); err != nil else

}

(2)time.afterfunc使用如下:

package main

import "time"

func main()

// afterfunc的內部又啟動了乙個協程,且這個定時器到了定時時間後,只會執行一次!

time.afterfunc(2*time.second, f)

time.sleep(5 * time.second)

}

下面這個情況會發生死鎖!

package main

import (

"fmt"

"time"

)func main()

// 執行下面的**,會發生死鎖!

fmt.println(<-time.afterfunc(2*time.second, f).c)

}

(3)time.after使用如下:

package main

import (

"fmt"

"time"

)func main()

SpringBoot的定時器使用

1 寫乙個普通的類,用 component註解的方式,把這個類交給spring處理,並且在方法體上新增 scheduled cron 0 3 package cn.bdqn.scheduled import org.springframework.scheduling.annotation.sche...

go 語言中的定時器

在日常的開發過程中,我們免不了與定時器打交道。通常需要定時執行某個程式,可能是每隔一段時間執行一次,也可能是固定的每天在某乙個時間點執行一次。總之,定時器的使用是非常頻繁的,下面將介紹幾種常用定時器。1.假設每隔三秒,我們列印一段資訊,可以採用如下方式。我們將要執行的程式放在乙個go協程中去執行。p...

Qt中定時器使用的兩種方法

qt中定時器的使用有兩種方法,一種是使用qobject類提供的定時器,還有一種就是使用qtimer類。其精確度一般依賴於作業系統和硬體,但一般支援20ms。下面將分別介紹兩種方法來使用定時器。方法一 qobject中的定時器的使用,需要用到三個函式 1 int qobject starttimer ...