Resultados da pesquisa a pedido "goroutine"

5 a resposta

Golang: estrutura anônima e estrutura vazia

http://play.golang.org/p/vhaKi5uVmm [http://play.golang.org/p/vhaKi5uVmm] package main import "fmt" var battle = make(chan string) func warrior(name string, done chan struct{}) { select { case opponent := <-battle: fmt.Printf("%s beat %s\n", ...

2 a resposta

Como podemos usar os canais no Go no lugar do mutex?

Canais combinam comunicação - a troca de um valor - com sincronização - garantindo que dois cálculos (goroutines) estejam em um estado conhecido. Como é possível usar os canais no Google Go para executar a funcionalidade do mutex? package main ...

3 a resposta

Por que ele não cria muitos threads quando muitas goroutines são bloqueadas no arquivo de gravação em golang?

Como sabemos, um encadeamento pode ser criado quando a goroutine precisar executar uma chamada de bloqueio, como uma chamada de sistema ou uma chamada para uma biblioteca C via cgo. Algum código de teste: package main import ( "io/ioutil" "os" ...

1 a resposta

Feche várias goroutines se ocorrer um erro de uma vez

considere esta função: 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 ...

1 a resposta

Diferença entre as goroutines principais e as goroutines geradas de um programa Go

Ao criar um servidor usandogRPC, se eu iniciar ogRPC servidor no processo principal, ele pode lidar com até solicitações (milhares) de clientes. No entanto, se eu iniciar o servidor como uma goroutine, ele poderá lidar apenas com alguns pedidos ...

2 a resposta

go rotina para o alcance sobre canais

Estive trabalhando em Golang há muito tempo. Mas ainda estou enfrentando esse problema, embora conheça a solução para o meu problema. Mas nunca descobri por que isso está acontecend Por exemplo, se eu tiver uma situação de pipeline para canais ...

1 a resposta

Número de threads usados pelo tempo de execução Go

Quantos threads o tempo de execução do Go (planejador, coletor de lixo etc.) pode usar? Por exemplo, seGOMAXPROCS é10, quantos desses threads do kernel seriam usados pelo tempo de execução? Editar:eu estava lendoa ...

2 a resposta

O "trabalhador" de desligamento passa a rotina após o buffer estar vazio

Quero meu trabalhador de rotina (ProcessToDo() no código abaixo) para aguardar até que todo o trabalho "em fila" seja processado antes de desligar. A rotina de trabalho possui um canal "pendente" (em buffer), através do qual o trabalho é enviado ...

4 a resposta

Processamento paralelo em golang

Dado o seguinte código: package main import ( "fmt" "math/rand" "time" ) func main() { for i := 0; i < 3; i++ { go f(i) } // prevent main from exiting immediately var input string fmt.Scanln(&input) } func f(n int) { for i := 0; i < 10; i++ { ...

3 a resposta

Contexto Golang.WithValue: como adicionar vários pares de valores-chave

Com Go'scontext No pacote, é possível passar dados específicos da solicitação para a pilha de funções de manipulação de solicitações usando func WithValue(parent Context, key, val interface{}) ContextIsso cria um novoContext que é uma cópia do ...