def get_token_queue(self) -> Queue: """토큰이 담긴 Queue를 반환한다. Returns: 토큰이 왼쪽부터 순서대로 담긴 Queue """ queue = Queue() for token in self._tokens: queue.enqueue(token) return queue
def hotPotatoes(nameList, cycNum): nameQueue = Queue() for name in nameList: print "enqueue %s in the queue" % name nameQueue.enqueue(name) while nameQueue.size() > 1: for i in range(cycNum-1): nameDeq = nameQueue.dequeue() print "dequeue and enqueue %s" % nameDeq nameQueue.enqueue(nameDeq) print "dequeue %s permanently" % nameQueue.dequeue() return nameQueue.dequeue()
def simuPrintTask(duration, printRate): printer = Printer(printRate) printQueue = Queue() waitingTimes = [] for curSecond in range(duration): if random.randrange(1,181) == 180: print "There is a new task at %sth second" % curSecond newTask = Task(curSecond) print "This task has print pages of %d" % newTask.getPages() printQueue.enqueue(newTask) if (not printer.hasTask()) and (not printQueue.isEmpty()): nextTask = printQueue.dequeue() print "Printer starts the next task" printer.startNextTask(nextTask) waitingTimes.append(nextTask.getWaitingTime(curSecond)) print "Current waiting time list: ", waitingTimes printer.countDownTime() avgWaitingTime = sum(waitingTimes) / len(waitingTimes) print "Average waiting time: %d seconds" % avgWaitingTime print "%d tasks remaining at the moment" % printQueue.size()