golang can limit the number of concurrency through channl as follows
// slice stores the current task to be process