コード例 #1
0
def simulation(numSeconds,pagesPerMinute):
	labPrinter = Printer(pagesPerMinute) #初始化打印机
	printQueue = Queue() #初始化任务等待队
	waitingTimes = [] #记录每个任务的等待时间

	for currentSecond in range(numSeconds):  #0~3600s
		if newPrintTask():  #创建新任务 
			task = Task(currentSecond)#当前任务及时间
			printQueue.enqueue(task)#进入打印队列
			#print('newPrintTask')

		if (not labPrinter.isBusy() ) and (not printQueue.isEmpty()):#打印机空闲并且有任务在等待
			nextTask = printQueue.dequeue()						   #弹出下一个任务
			waitingTimes.append(nextTask.waitTime(currentSecond))  #计算并记录等待时间
			labPrinter.loadNext(nextTask)						   #载入新的任务

		labPrinter.printTick()

	averageWait = sum(waitingTimes)/len(waitingTimes)
	print("Average Wait %6.2f secs %3d tasks remaining."%(averageWait,printQueue.size()))