Вопросы по теме 'goroutine'

Как я могу эмулировать каналы Go с помощью Haskell?
Недавно я начал читать о языке программирования Go, и мне показалось, что переменные канала очень привлекательны. Можно ли подражать той же концепции в Haskell? Может быть, иметь тип данных Channel a и структуру монад, чтобы включить изменяемое...
5153 просмотров
schedule 15.11.2021

Первый пример горутины, странные результаты
Этот пример взят из tour.golang.org/#63 package main import ( "fmt" "time" ) func say(s string) { for i := 0; i < 5; i++ { time.Sleep(100 * time.Millisecond) fmt.Println(s) } } func main() { go...
301 просмотров
schedule 01.12.2021

Почему golang не выполняет правильную итерацию в моем цикле for с диапазоном?
Я не понимаю, почему следующий код не выводит повторяющееся значение. test:= []int{0,1,2,3,4} for i,v := range test{ go func(){ fmt.Println(i,v) } } Я думаю, он должен распечатать 0 0 1 1 2 2 3 3 4 4 Но вместо этого он...
847 просмотров
schedule 03.12.2021

Закрытие канала по сравнению с отправкой, например пустая структура?
У меня есть конвейер с горутинами, соединенными каналами, так что каждая горутина запускает другую, пока все не запустятся. Проще говоря, представьте две горутины A и B , так что, когда A будет завершена, она должна сообщить B , что она может...
3915 просмотров
schedule 09.11.2021

Есть ли в Go что-то вроде ThreadLocal от Java?
Я использую Go и Gin для настройки своего веб-сайта и хочу знать время доступа к базе данных. Я использую goroutine, поэтому, если я не использую что-то вроде thread-local, я должен изменить почти все функции, чтобы это сделать. Есть ли у Go хороший...
11496 просмотров
schedule 15.11.2021

Аналоги горутина на других языках
Параллелизм - действительно сложная часть программирования. В последнее время очень популярна горутина. У меня вопрос - какие аналоги горутин существуют на других языках?
538 просмотров
schedule 11.10.2021

Использование goroutine и channel в обработчике HTTP привело к блокировке ResponseWriter
package main import ( "fmt" "log" "net/http" "time" ) var ch chan bool func testTimer1() { go func() { log.Println("test timer 1") ch <- true }() } func timer1() { timer1 := time.NewTicker(2 *...
834 просмотров
schedule 15.10.2021

Проблема с горутиной и рабочей группой
Я пытаюсь напечатать набор больших заданий («1,2», «3,4», «5») в сочетании с дополнительными заданиями («один», «два», «три») и использую горутины и Рабочие группы для этого. Я ожидаю следующего вывода (не совсем в этом порядке, но внутренние...
109 просмотров
schedule 24.09.2021

Рабочий пул HTTP-запросов Golang
Я пытаюсь создать систему, пул рабочих / очередь заданий, чтобы обрабатывать как можно больше http requests на каждой конечной точке API. Я изучил этот пример и он работает нормально, за исключением того, что я наткнулся на проблему,...
11144 просмотров
schedule 16.11.2021

Подпрограммы Go Ошибка умножения матрицы
Я параллельно умножаю матрицу, используя подпрограммы go. Я получаю индекс за пределами допустимого диапазона, но когда я запускаю один и тот же код последовательно, он работает. (под последовательным я подразумеваю комментирование строки go). Я...
831 просмотров

Голанг Чан зависает при просмотре результатов
Я новичок в каналах GoLang, но он работает не так, как я ожидал. У меня есть функция, для которой я хочу вызвать 3 отдельные горутины, а затем дождаться их завершения. Если я получаю сообщение об ошибке, я пытаюсь поместить его в CHAN, а затем...
469 просмотров
schedule 21.09.2021

Гонка данных со списком. Одновременный доступ к списку с мьютексами
У меня гонка за данными, и я не могу понять, почему. Выполняя свои тесты с помощью команды -race , я сузил ее до попытки получить доступ к list.List при чтении из нее, но мои мьютексы, похоже, ничего не делают. У меня есть ряд * list.Lists...
160 просмотров
schedule 13.09.2021

Бесконечный цикл с vs без time.Sleep ()
У меня есть горутина, которая бесконечно проигрывает звук play() . Чтобы сохранить play() в живых, у меня есть вызывающая функция, которая после этого запускает бесконечный цикл for. Неожиданно то, что цикл barebones, похоже, не позволяет...
2015 просмотров
schedule 02.10.2021

Почему нет ошибки, что приемник заблокирован?
Согласно документации Go : Получатели всегда блокируются, пока не появятся данные для приема Этот тест должен завершиться неудачно, потому что для последней операции приема из канала нет соответствующей записи: package main import...
72 просмотров
schedule 10.11.2021

Goroutine с sync.waitGroup каждый раз выводит разные значения
Код ниже будет печатать разные значения каждый раз после выполнения, но я хочу, чтобы значения были одинаковыми, как изменить приведенный ниже код без использования time.Sleep package main import ( "fmt" "sync" ) var...
54 просмотров
schedule 13.10.2021

time.Sleep приводит к нежелательному поведению
import "fmt" import "time" func main() { array := []int{1, 2, 3} for _, num := range array { go func() { fmt.Println(fucknum) }(fucknum) time.Sleep(time.Nanosecond) }...
74 просмотров
schedule 22.10.2021

Пример горутины - книга Донована / Керниган - требуется объяснение
Следующий пример взят из книги Донована / Керниган: func makeThumbnails6(filenames <-chan string) int64 { sizes := make(chan int64) var wg sync.WaitGroup // number of working goroutines for f := range filenames { wg.Add(1)...
34 просмотров
schedule 21.10.2021

Канал закрыт, но все горутины спят - тупик
Да, это похоже на один из самых повторяющихся вопросов на StackOverflow, но, пожалуйста, уделите несколько минут этому вопросу. func _Crawl(url string, fetcher Fetcher, ch chan []string) { if store.Read(url) == true { return } else...
974 просмотров

Как приостановить и возобновить горутину?
Я пытаюсь приостановить и возобновить раствор. Я понимаю, что могу sleep пробежать, но я ищу скорее кнопку «пауза / возобновление», чем таймер. Вот моя попытка. Я использую функцию блокировки канала для паузы и select для переключения того,...
288 просмотров
schedule 17.03.2022

Взаимное параллельное выполнение на языке программирования Go
У меня есть две параллельные процедуры, как показано ниже, Routine 1{ routine procedure critical section{ } routine procedure...
1161 просмотров