Questions
- Can you change the worker implementation so that the submitted work can be canceled by the caller?
- Many languages offer frameworks with dynamically sized worker pools. Can you think of a way to implement that in Go? Would that worker pool be more performant than a fixed-sized worker pool that uses the same number of goroutines as the maximum for the dynamically sized one?
- Try writing a generic fan-in/fan-out function (without ordering) that takes n input channels and m output channels.