Senior
Kako učiniti da izvršavanje dva worker() bude paralelno umesto sekvencijalno (6 sekundi → 3 sekunde)?
sobes.tech АИ
Одговор од АИ
У језику Go, за паралелно извршавање функција могу се користити горутинес. Ако имате две функције worker(), које тренутно се извршавају секвенцијално и укупно трају 6 секунди, покретањем у одвојеним горутинес, оне ће се извршавати паралелно, а укупно време ће се смањити приближно на 3 секунде.
Пример:
func() {
worker()
}()
func() {
worker()
}()
// Да бисте чекали да се заврше обе горутинес, користите sync.WaitGroup
var wg sync.WaitGroup
wg.Add(2)
func() {
defer wg.Done()
worker()
}()
func() {
defer wg.Done()
worker()
}()
wg.Wait()
Овим начином, покретање функција у горутинес и синхронизација преко WaitGroup омогућава њихово паралелно извршавање.