-
Notifications
You must be signed in to change notification settings - Fork 0
/
5.PrinterMain.py
34 lines (27 loc) · 985 Bytes
/
5.PrinterMain.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
from Task import Task
from Printer import Printer
from Queue import Queue
from random import randrange
def simulation(seconds, ppm):
printQueue = Queue()
waitingtimes = []
printer = Printer(ppm)
for currentSecond in range(seconds):
if newPrintTask():
printQueue.enqueue(Task("Task"+str(currentSecond), currentSecond))
if (not printer.busy()) and (not printQueue.isEmpty()):
nexttask = printQueue.dequeue()
waitingtimes.append(nexttask.getWaitTime(currentSecond))
printer.nextTask(nexttask)
printer.tick()
lenWaitTime = len(waitingtimes)
averageWait=sum(waitingtimes)/lenWaitTime
print("Average Wait %6.2f secs %3d tasks remaining."%(averageWait,printQueue.size()))
def newPrintTask():
num = randrange(1,181)
if num == 180:
return True
else:
return False
for i in range(5):
simulation(3600, 20)