Вопросы с тегом «goroutine»

12
Как асинхронно вызвать метод в Java
В последнее время я смотрел горутины Go и подумал, что было бы неплохо иметь что-то подобное в Java. Насколько я искал, обычный способ распараллеливания вызова метода - это сделать что-то вроде: final String x = "somethingelse"; new Thread(new Runnable() { public void run() { x.matches("something"); } }).start(); Это не очень …

5
Как дождаться завершения всех горутин, не используя time.Sleep?
Этот код выбирает все файлы xml в той же папке в качестве вызываемого исполняемого файла и асинхронно применяет обработку к каждому результату в методе обратного вызова (в приведенном ниже примере выводится только имя файла). Как мне избежать использования метода сна, чтобы не допустить выхода из основного метода? У меня проблемы …

3
Пример для sync.WaitGroup правильно?
Правильно ли этот пример использования sync.WaitGroup? Это дает ожидаемый результат, но я не уверен насчет положения wg.Add(4)и wg.Done(). Имеет ли смысл добавлять сразу четыре горутины wg.Add()? http://play.golang.org/p/ecvYHiie0P package main import ( "fmt" "sync" "time" ) func dosomething(millisecs time.Duration, wg *sync.WaitGroup) { duration := millisecs * time.Millisecond time.Sleep(duration) fmt.Println("Function in background, …
108 go  goroutine 

6
Как остановить горутину
У меня есть горутина, которая вызывает метод и передает возвращаемое значение по каналу: ch := make(chan int, 100) go func(){ for { ch <- do_stuff() } }() Как мне остановить такую ​​горутину?
103 go  goroutine  channels 

4
Получение возвращаемых значений из горутин
Приведенный ниже код дает ошибку компиляции, говорящую о неожиданном запуске: x := go doSomething(arg) func doSomething(arg int) int{ ... return my_int_value } Я знаю, что могу получить возвращаемое значение, если вызову функцию как обычно, без использования горутины. Или я могу использовать каналы и т. Д. У меня вопрос, почему невозможно …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.