¿Comó estan relacionados el bloqueo y la ejecución funciones?
El siguiente es un ejemplo de una función que simula la lectura de un archivo de texto bastante grande.
package main
import (
"fmt"
"time"
)
func leerArchivo() string {
time.Sleep(time.Second * 5)
return "Datos del archivo"
}
func main() {
datos := leerArchivo()
fmt.Println(datos)
}
Tenemos…
- Una función llamada
leerArchivo()
que devuelve un string. - Bloqueamos la ejecución durante 5 segundos
time.Sleep(time.Second * 5)
. - Retornamos el texto
"Datos del archivo"
.
Como podemos ver esta función si bien simula un archivo bastante grande, también genera un bloqueo, es decir que mientras no se complete, no se continua con la ejecución del programa.