Golang time.Sleep()用法及示例讲解

 更新时间:2023年02月28日 09:25:10   作者:纯净天空  
Go语言中的Sleep()函数用于在至少规定的持续时间d内停止最新的go-routine,这篇文章主要介绍了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”。

到此这篇关于Golang time.Sleep()用法及代码示例的文章就介绍到这了,更多相关Golang time.Sleep()用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 解决golang结构体tag编译错误的问题

    解决golang结构体tag编译错误的问题

    这篇文章主要介绍了解决golang结构体tag编译错误的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-05-05
  • go语言定时器Timer及Ticker的功能使用示例详解

    go语言定时器Timer及Ticker的功能使用示例详解

    这篇文章主要为大家介绍了go语言定时器的功能使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04
  • Go有效获取变量类型多种方法探索

    Go有效获取变量类型多种方法探索

    这篇文章主要介绍了Go有效获取变量类型的多种方法探索,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-02-02
  • 一文带你玩转Golang Prometheus Eexporter开发

    一文带你玩转Golang Prometheus Eexporter开发

    本文分两大块,一是搞清楚prometheus四种类型的指标Counter,Gauge,Histogram,Summary用golang语言如何构造这4种类型对应的指标,二是搞清楚修改指标值的场景和方式,感兴趣的可以了解一下
    2023-02-02
  • go-zero自定义中间件的几种方式

    go-zero自定义中间件的几种方式

    首先 go-zero 已经为我们提供了很多的中间件的实现,但有时难免有需求需要自定义,这里介绍几种自定义的方法,文中通过代码示例讲解的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2024-07-07
  • docker如何安装部署golang应用程序

    docker如何安装部署golang应用程序

    这篇文章主要为大家介绍了docker如何安装部署golang应用程序详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • Golang Redis连接池实现原理及示例探究

    Golang Redis连接池实现原理及示例探究

    这篇文章主要为大家介绍了Golang Redis连接池实现示例探究,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • Go语言并发编程之互斥锁Mutex和读写锁RWMutex

    Go语言并发编程之互斥锁Mutex和读写锁RWMutex

    Go 语言中提供了很多同步工具,本文将介绍互斥锁Mutex和读写锁RWMutex的使用方法,想要具体了解的小伙伴,请参考下面文章详细内容,希望对你有所帮助
    2021-10-10
  • golang中包无法引入问题解决

    golang中包无法引入问题解决

    本文主要介绍了golang中包无法引入问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Go语言实现定时器的方法

    Go语言实现定时器的方法

    这篇文章主要介绍了Go语言实现定时器的方法,涉及Go语言时间操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02

最新评论