當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Golang time.Sleep()用法及代碼示例


在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”。




相關用法


注:本文由純淨天空篩選整理自nidhi1352singh大神的英文原創作品 time.Sleep() Function in Golang With Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。