función time.Sleep() en Golang con ejemplos

En el lenguaje Go, los paquetes de tiempo brindan funcionalidad para determinar y ver el tiempo.
La función Sleep() en el lenguaje Go se usa para detener la última rutina go durante al menos la duración indicada d . Y una duración de sueño negativa o nula hará que este método regrese instantáneamente. Además, esta función se define en el paquete de tiempo. Aquí, debe importar el paquete «tiempo» para usar estas funciones.

Sintaxis:

func Sleep(d Duration)

Aquí, d es la duración del tiempo en segundos para dormir.

Valor de retorno: detiene la última rutina de inicio durante la duración indicada y luego devuelve la salida de cualquier operación después de que finaliza la suspensión.

Ejemplo 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.....")
}

Producción:

Sleep Over.....

Aquí, después de ejecutar el código anterior cuando se llama a la función principal, debido al método de suspensión , la operación indicada se detiene durante la duración dada y luego se imprime el resultado.

Ejemplo 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")
    }
}

Producción:

output1
timeout....2

Aquí, en el código anterior, se imprime «output1» ya que la duración del tiempo de espera (en el método After()) es mayor que el tiempo de suspensión (en el método Sleep()), por lo que la salida se imprime antes de que se muestre el tiempo de espera, pero después de eso. , el caso a continuación tiene una duración de tiempo de espera menor que el tiempo de suspensión, por lo que, antes de imprimir la salida, se muestra el tiempo de espera, por lo tanto, se imprime «tiempo de espera… 2».

Publicación traducida automáticamente

Artículo escrito por nidhi1352singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *