func (q *Queue) Next() (interface{}, bool) {
	q.key.Lock()
	defer q.key.Unlock()
	if q.underlyer == nil {
		return nil, false
	}
	return q.underlyer.RemoveFront()
}
func (q *Queue) Next() (interface{}, bool) {
	q.key.Lock()
	defer q.key.Unlock()
	if q.underlyer == nil {
		return nil, false
	}
	return q.underlyer.RemoveFront()
}
func ( q * Queue ) Next ( ) ( interface { } , bool ) { q . key . Lock ( ) defer q . key . Unlock ( ) if q . underlyer == nil { return nil , false } return q . underlyer . RemoveFront ( ) }
// Next removes and returns the next item in the Queue.
Next removes and returns the next item in the Queue .