thread pool like helper for go using go routines and channels