Resultados de la búsqueda a petición "goroutine"

1 la respuesta

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 ...

1 la respuesta

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 ...

2 la respuesta

¿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 ...

1 la respuesta

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: ", ...

3 la respuesta

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 ...

2 la respuesta

¿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 ...

1 la respuesta

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 ...

2 la respuesta

¿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 ...

5 la respuesta

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 ...

2 la respuesta

¿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 ...