You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
20 lines
334 B
20 lines
334 B
package threading |
|
|
|
type WorkerGroup struct { |
|
job func() |
|
workers int |
|
} |
|
|
|
func NewWorkerGroup(job func(), works int) *WorkerGroup { |
|
return &WorkerGroup{ |
|
job: job, |
|
workers: works, |
|
} |
|
} |
|
func (wg WorkerGroup) Start() { |
|
group := NewRoutineGroup() |
|
for i := 0; i < wg.workers; i++ { |
|
group.RunSafe(wg.job) |
|
} |
|
group.Wait() |
|
}
|
|
|