Результаты поиска по запросу "goroutine"
Безопасно ли одновременно читать указатель на функцию без блокировки?
Предположим, у меня есть это:
Работает отлично, большое спасибо
отрим эту функцию: 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 ...
Как ждать, пока все goroutines закончат, не используя time.Sleep?
Этот код выбирает все XML-файлы в той же папке, что и вызываемый исполняемый файл, и асинхронно применяет обработку к каждому результату в методе обратного вызова (в приведенном ниже примере выводится только имя файла). Как мне избежать ...
Как асинхронно вызывать метод в Java
Я смотрел наГоу рутины [http://golang.org/doc/effective_go.html#goroutines]в последнее время и подумал, что было бы неплохо иметь что-то подобное в Java. Насколько я искал, общий способ распараллеливания вызова метода - сделать ...
Является ли Go-программа подпрограммой?
В презентации Google I / O 2012Go Concurrency Patterns [https://www.youtube.com/watch?v=f6kdp27TYZs]Роб Пайк упоминает, что несколькоgoroutines можно жить в одной ветке. Означает ли это, что они реализованы каксопрограммы ...
но время отбора проб неизвестно. так что с примером 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 ...
Да, может быть. Иногда вводить другой дизайн слишком сложно для понимания. Во всяком случае, я отредактировал свой ответ, чтобы уточнить цель.
ался решить эту простую проблему, с которой я столкнулся в параллельности Голанга. Я искал все возможные решения, но не нашел ничего конкретного для моей проблемы (или я мог бы пропустить одно). Вот мой код: package main import ( "fmt" "time" ) ...
О, хорошо, почти слово в слово к ответу @ icza; он избил меня до этого :-)
я есть срез, который содержит работу, которую нужно выполнить, и срез, который будет содержать результаты, когда все будет сделано. Ниже приведен набросок моего общего процесса: var results = make([]Result, len(jobs)) wg := sync.WaitGroup{} for ...
Обязательно упоминаются соответствующие факты, то есть то, что операции канала могут блокироваться, и что программы выполняются одновременно. Ваш конкретный пример - только применение этих основ.
но работаю в Голанге. Но все же я сталкиваюсь с этой проблемой, хотя знаю решение своей проблемы. Но так и не понял, почему это происходит. Например, если у меня есть конвейерная ситуация для входящих и исходящих каналов, как показано ...