Resultados da pesquisa a pedido "goroutine"
Por que Golang não pode gerar json a partir de struct com o caractere minúsculo da frente?
Estou tentando imprimir o resultado do json a partir da estrutura que criei da seguinte maneira: type Machine struct { m_ip string m_type string m_serial string }e imprima m:= &Machine{ m_ip:"test", m_type:"test", m_serial:"test" } ...
Isso ocorre porque o compilador go otimizou o código?
package main import "time" func main() { i := 1 go func() { for { i++ } }() <-time.After(1 * time.Second) println(i) }A saída é sempre1. No entanto, é absolutamente que 1s é suficiente para ofor loop para passar por muitas e muitas vezes. Eu ...
cancelar uma operação de bloqueio no Go
Eu tenho uma operação de bloqueio em uma biblioteca de terceiros que não controle. Pode potencialmente durar para sempre. Então, eu quero definir um tempo limite para isso. A maneira óbvia é envolvê-lo com um canal e uma goroutine e depois ...
ordem de execução das goroutines
Estou tentando entender esse pedaço de código, não sei por que o segundo passo é executado antes do primeiro. Seria ótimo se alguém realmente pudesse me ajudar com isso! func sum(a []int, c chan int) { fmt.Println("summing: ", a) total := 0 for ...
No Windows, é possível executar uma única goroutine como um usuário diferente?
Como você delega a execução de uma goroutine para outra conta de não administrador no Windows? Vejo que você pode fazer isso emLinux [https://groups.google.com/forum/#!topic/golang-nuts/IpfEDBVSE34] usandosyscall.Setuid(). Não consigo ver como ...
maneira adequada de aguardar o término de uma rotina
Desejo saber qual é a maneira correta de aguardar o término de uma rotina antes de sair do programa. Lendo algumas outras respostas, parece que um bool chan fará o truque, como emLink para parque ...
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 ...
como parar uma goroutine
Tenho uma goroutine que chama um método e passa o valor retornado em um canal: ch := make(chan int, 100) go func(){ for { ch <- do_stuff() } }()Como faço para parar uma goroutine?
Aguarde o término de n goroutines
Eu preciso começar uma enorme quantidade de goroutines e esperar pela sua rescisão. A maneira intuitiva parece usar um canal para esperar até que todos estej...