Logo

Programming-Idioms

This language bar is your friend. Select your favorite languages!
  • Python

Idiom #352 Parallelize 3 computations

Execute the functions f1, f2, f3 concurrently, and assign their respective return values to a1, a2, a3.

from concurrent.futures import ThreadPoolExecutor
e = ThreadPoolExecutor()
futures = [e.submit(func) for func in (f1, f2, f3)]
a1, a2, a3 = [f.result() for f in futures]
import "sync"
var wg sync.WaitGroup
wg.Add(3)
go func() {
	a1 = f1()
	wg.Done()
}()
go func() {
	a2 = f2()
	wg.Done()
}()
go func() {
	a3 = f3()
	wg.Done()
}()
wg.Wait()

3 new goroutines

New implementation...