Результаты поиска по запросу "goroutine"

3 ответа

Golang context.WithValue: как добавить несколько пар ключ-значение

2 ответа

Безопасно ли одновременно читать указатель на функцию без блокировки?

Предположим, у меня есть это:

0 ответов

Работает отлично, большое спасибо

отрим эту функцию: 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 put ...

ТОП публикаций

4 ответа

Как ждать, пока все goroutines закончат, не используя time.Sleep?

Этот код выбирает все XML-файлы в той же папке, что и вызываемый исполняемый файл, и асинхронно применяет обработку к каждому результату в методе обратного вызова (в приведенном ниже примере выводится только имя файла). Как мне избежать ...

10 ответов

Как асинхронно вызывать метод в Java

Я смотрел наГоу рутины [http://golang.org/doc/effective_go.html#goroutines]в последнее время и подумал, что было бы неплохо иметь что-то подобное в Java. Насколько я искал, общий способ распараллеливания вызова метода - сделать ...

4 ответа

Является ли Go-программа подпрограммой?

В презентации Google I / O 2012Go Concurrency Patterns [https://www.youtube.com/watch?v=f6kdp27TYZs]Роб Пайк упоминает, что несколькоgoroutines можно жить в одной ветке. Означает ли это, что они реализованы каксопрограммы ...

2 ответа

 но время отбора проб неизвестно. так что с примером 2 здесь все в порядке, но это зависит от варианта использования. еще раз спасибо.

package main import "time" func main() { i := 1 go func() { for { i++ } }() <-time.After(1 * time.Second) println(i) } всегда1. Однако абсолютно достаточно, чтобы 1for цикл, чтобы пройти много много раз. я думаюi в закрытииi вmain ...

5 ответов

Да, может быть. Иногда вводить другой дизайн слишком сложно для понимания. Во всяком случае, я отредактировал свой ответ, чтобы уточнить цель.

ался решить эту простую проблему, с которой я столкнулся в параллельности Голанга. Я искал все возможные решения, но не нашел ничего конкретного для моей проблемы (или я мог бы пропустить одно). Вот мой код: package main import ( "fmt" "time" ) ...

1 ответ

О, хорошо, почти слово в слово к ответу @ icza; он избил меня до этого :-)

я есть срез, который содержит работу, которую нужно выполнить, и срез, который будет содержать результаты, когда все будет сделано. Ниже приведен набросок моего общего процесса: var results = make([]Result, len(jobs)) wg := sync.WaitGroup{} for ...

1 ответ

Обязательно упоминаются соответствующие факты, то есть то, что операции канала могут блокироваться, и что программы выполняются одновременно. Ваш конкретный пример - только применение этих основ.

но работаю в Голанге. Но все же я сталкиваюсь с этой проблемой, хотя знаю решение своей проблемы. Но так и не понял, почему это происходит. Например, если у меня есть конвейерная ситуация для входящих и исходящих каналов, как показано ...