在Go語言中,時間包提供了確定和查看時間的函數。 Go語言中的Sleep()函數用於在至少規定的持續時間d內停止最新的go-routine。睡眠時間為負數或零將導致此方法立即返回。此外,此函數在時間包下定義。在這裏,您需要導入“time”包才能使用這些函數。
用法:
func Sleep(d Duration)
此處,d是睡眠時間,以秒為單位。
返回值:它將在規定的時間內暫停最新的go-routine,然後在睡眠結束後返回任何操作的輸出。
範例1:
// Golang program to illustrate the usage of
// Sleep() function
// Including main package
package main
// Importing fmt and time
import (
"fmt"
"time"
)
// Main function
func main() {
// Calling Sleep method
time.Sleep(8 * time.Second)
// Printed after sleep is over
fmt.Println("Sleep Over.....")
}
輸出:
Sleep Over.....
在這裏,在運行上述代碼後,當調用main函數時,由於使用了Sleep方法,因此在給定的時間內停止了所述操作,然後打印了結果。
範例2:
// Golang program to illustrate the usage of
// Sleep() function
// Including main package
package main
// Importing time and fmt
import (
"fmt"
"time"
)
// Main function
func main() {
// Creating channel using
// make keyword
mychan1:= make(chan string, 2)
// Calling Sleep function of go
go func() {
time.Sleep(2 * time.Second)
// Displayed after sleep overs
mychan1 <- "output1"
}()
// Select statement
select {
// Case statement
case out:= <-mychan1:
fmt.Println(out)
// Calling After method
case <-time.After(3 * time.Second):
fmt.Println("timeout....1")
}
// Again Creating channel using
// make keyword
mychan2:= make(chan string, 2)
// Calling Sleep method of go
go func() {
time.Sleep(6 * time.Second)
// Printed after sleep overs
mychan2 <- "output2"
}()
// Select statement
select {
// Case statement
case out:= <-mychan2:
fmt.Println(out)
// Calling After method
case <-time.After(3 * time.Second):
fmt.Println("timeout....2")
}
}
輸出:
output1 timeout....2
此處,在上麵的代碼“output1”中,由於超時的持續時間(在After()方法中)大於睡眠時間(在Sleep()方法中)而被打印,因此,在顯示超時之前打印輸出,但是在此之後,以下情況發生了超時持續時間小於睡眠時間,因此在打印輸出之前顯示超時,因此將打印“timeout….2”。
相關用法
- Golang math.Lgamma()用法及代碼示例
- Golang math.Float64bits()用法及代碼示例
- Golang atomic.AddInt64()用法及代碼示例
- Golang atomic.StoreInt64()用法及代碼示例
- Golang reflect.FieldByIndex()用法及代碼示例
- Golang string.Contains用法及代碼示例
- Golang bits.Sub()用法及代碼示例
- Golang io.PipeWriter.CloseWithError()用法及代碼示例
- Golang time.Round()用法及代碼示例
- Golang reflect.AppendSlice()用法及代碼示例
- Golang reflect.ChanOf()用法及代碼示例
- Golang flag.Bool()用法及代碼示例
- Golang time.Time.Year()用法及代碼示例
- Golang reflect.DeepEqual()用法及代碼示例
- Golang reflect.Indirect()用法及代碼示例
- Golang reflect.CanAddr()用法及代碼示例
- Golang reflect.CanInterface()用法及代碼示例
- Golang reflect.CanSet()用法及代碼示例
- Golang reflect.Cap()用法及代碼示例
- Golang strings.ContainsRune()用法及代碼示例
注:本文由純淨天空篩選整理自nidhi1352singh大神的英文原創作品 time.Sleep() Function in Golang With Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。