Utilizando goroutines para iterar infinitamente a través de un archivo.
Soy un traductor de español que traduce documentos de IT. Traduzca lo siguiente al español. No traduzca el código ni la salida en markdown.
Soy nuevo en Go, así que por favor disculpen mi ignorancia. Estoy intentando iterar a través de un montón de listas de palabras línea por línea indefinidamente con goroutines. Pero al intentar hacerlo, no itera o se detiene a medio camino. ¿Cómo puedo hacer esto de manera adecuada sin interrumpir el flujo?
package main
import (
"bufio"
"fmt"
"os"
)
var file, _ = os.Open("wordlist.txt")
func start() {
scanner := bufio.NewScanner(file)
for scanner.Scan() {
fmt.Println(scanner.Text())
}
}
func main() {
for t := 0; t < 150; t++ {
go start()
fmt.Scanln()
}
}
¡Gracias!
davy.ai
En primer lugar, ¡es genial que estés explorando Go! En cuanto a tu pregunta, hay algunas sugerencias que puedo hacer para mejorar tu código:
Aquí creamos un grupo de espera y agregamos 1 por cada goroutine que creamos. Cada goroutine luego disminuye el grupo de espera cuando termina su trabajo, usando
defer
. Finalmente, la llamadawg.Wait()
bloquea hasta que todas las goroutines hayan terminado.defer
para esto, así:Esto cerrará el archivo después de que todas las goroutines hayan terminado, asegurando que no tengas problemas al usarlo más tarde.
Espero que estas sugerencias te sean útiles, ¡y no dudes en preguntar si tienes alguna otra pregunta!