Go - parallel iteration
- Inner goroutine can send event to outer goroutine by channel
- Ex. Pass value to inner routine function
- Declare a variable in inner goroutine function, use outer variable will be wrong because that variable value will be changed in for loop
- Ex. Send error to errorChannel from inner goroutine。may goroutine leak.
- Solution is to use a buffered channel to prevent block.
- Another solution is to use abother goroutine to get error.
- Need sync.WaitGroup to make sure items to process all done. Wait done in a goroutine when main channel is used to receive msg from goroutine
- Add must be callled before goroutine start, otherwise cant make sure add happens before done
- Done same as Add(-1)

What to read next
Previous / Next
More like this