Resultados de la búsqueda a petición "goroutine"
Número de hilos utilizados por Go runtime
¿Cuántos hilos puede usar el tiempo de ejecución Go (planificador, recolector de basura, etc.)? Por ejemplo, siGOMAXPROCS es10, ¿cuántos de esos hilos del núcleo serían utilizados por el tiempo de ejecución? Editar:estaba leyendolo ...
Diferencia entre la goroutina principal y las goroutines generadas de un programa Go
Al crear un servidor usandogRPC, si empiezo elgRPC servidor en el proceso principal, puede manejar tantas solicitudes (miles) de clientes. Sin embargo, si inicio el servidor como una rutina, solo puede manejar algunas solicitudes (cientos) y ...
¿Cómo podemos usar canales en Go en lugar de mutex?
Los canales combinan la comunicación (el intercambio de un valor) con la sincronización, lo que garantiza que dos cálculos (gorutinas) se encuentren en un estado conocido. ¿Cómo es posible usar los canales en Google Go para realizar la ...
orden de ejecución de gorutinas
Estoy tratando de entender esta parte del código, no estoy seguro de por qué el segundo intento se ejecuta antes del primero. ¡Sería genial si alguien realmente pudiera ayudarme con esto! func sum(a []int, c chan int) { fmt.Println("summing: ", ...
Contexto Golang.WithValue: cómo agregar varios pares clave-valor
Con Go'scontext paquete es posible pasar datos específicos de la solicitud a la pila de funciones de manejo de solicitudes utilizando func WithValue(parent Context, key, val interface{}) ContextEsto crea un nuevoContext que es una copia de padre ...
¿Es seguro leer un puntero de función al mismo tiempo sin un bloqueo?
Supongamos que tengo esto: go func() { for range time.Tick(1 * time.Millisecond) { a, b = b, a } }()Y en otra parte: i := a // <-- Is this safe?Para esta pregunta, no es importante cuál es el valor dei es con respecto al originala ob. La única ...
Cierre múltiples rutinas si ocurre un error en una de cada vez
considere esta función: func doAllWork() error { var wg sync.WaitGroup wg.Add(3) for i := 0; i < 2; i++ { go func() { defer wg.Done() for j := 0; j < 10; j++ { result, err := work(j) if err != nil { // can't use `return err` here // what sould I ...
¿Es esto porque el compilador go optimizó el código?
package main import "time" func main() { i := 1 go func() { for { i++ } }() <-time.After(1 * time.Second) println(i) }La salida es siempre1. Sin embargo, es absolutamente que 1s es suficiente para elfor bucle para repasar muchas, muchas ...
Resolviendo el punto muerto de las goroutinas
He estado tratando de resolver este simple problema que encontré en la concurrencia de Golang. He estado buscando todas las soluciones posibles, pero no encontré nada específico para mi problema (o podría perderme una). Aquí está mi ...
¿Puedo escribir simultáneamente diferentes elementos de corte
Tengo un segmento que contiene trabajo por hacer, y un segmento que contendrá los resultados cuando todo esté listo. El siguiente es un bosquejo de mi proceso general: var results = make([]Result, len(jobs)) wg := sync.WaitGroup{} for i, job ...