golang сделать обработку многопоточной

Пользователь

Есть массивчик и хочу ускорить обработку его и сделать многопоточным как вариант, но не могу понять как это сделать


Вот не многопоточный вариант

func doubleSlice(s []int) {
    for i := range s {
        s[i] = s[i] * 2
    }
}
Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket
17 июня 2020 г., 7:49

Пользователь

Да многопоточность сильно поможет Вам особенно если массив очень большой

Попробуйте вот так

func doubleSlice(s []int) {
    var wg sync.WaitGroup
    for i := range s {
        wg.Add(1)
        go func(i int) {
            defer wg.Done()
            s[i] = s[i] * 2
        }(i)
    }
    wg.Wait()
}
17 июня 2020 г., 7:51

Пользователь

А чем RabbitMq не нравится или redis queue ?

29 июня 2020 г., 7:04

Пользователь

elena: А чем RabbitMq не нравится или redis queue ?

@elena а зачем настраивать и использовать какое то дополнительное обеспечение если нужно для решения одной просто задачи! Они хорошо подходят для решения сложных задач - к примеру Вы посылаете миллионы писем в день! А иногда нужно что то простое!

10 июля 2020 г., 16:21