'Return a copy of the first element without removing it.'

def peek(self):

    self.not_empty.acquire()
    try:
        while (not self._qsize()):
            self.not_empty.wait()
        return copy.deepcopy(self.queue[0])
    finally:
        self.not_empty.release()
