使用 Goroutines 池来处理基于任务的操作

lebai03 ·
在continue里面把任务放到待处理队列就好啦
#5
更多评论
为什么任务队列满了就直接丢弃了任务?不太人性化 ``` func (wp *WorkPool) queueRoutine() { for { select { case <-wp.shutdownQueueChannel: wp.shutdownQueueChannel <- "Down" return case queueItem := <-wp.queuechannel: if atomic.AddInt32(&wp.queuedWork, 0) == wp.queueCapacity { // 丢弃任务 queueItem.ResultChannel <- fmt.Errorf("Thread Pool At Capacity") continue } atomic.AddInt32(&wp.queuedWork, 1) wp.workChannel <- queueItem.Work queueItem.ResultChannel <- nil break } } } ```
#1
polaris
社区,需要你我一同完善!
<a href="/user/DukeAnn" title="@DukeAnn">@DukeAnn</a> 他采用的策略而已,这依赖于不同的项目要求;并不是什么项目都适合这种处理策略。
#2