func NewChannelPriorityQueue(queueSize int) ChannelPriorityQueue {
	channels := make([]chan interface{}, numPriorities)
	for i := range channels {
		channels[i] = make(chan interface{}, queueSize)
	}
	return &channelPriorityQueue{
		channels:   channels,
		shutdownCh: make(chan struct{}),
	}
}
NewChannelPriorityQueue returns a ChannelPriorityQueue
package collection
import "fmt"
const numPriorities = 2
type channelPriorityQueue struct {
	channels   []chan interface{}
	shutdownCh chan struct{}
}
type ChannelPriorityQueue interface {
	Add(priority int, item interface{}) bool
	Remove() (interface{}, bool)
	Close()
}