0
如果我想打印出PriorityQueue
中的值,我該怎麼做?我擴展了PriortiyQueue
,並訪問了底層列表queue
。然而,當我的for循環做了,我得到了哪些項目被添加打印出PriorityQueue中的值
# the ADT PriorityQueue
class ReadyQueue(PriorityQueue):
...
def listAll(self):
print("PID \t Name \t Status \t Priority")
print("=" * 42)
for _, _, pcb in self.queue:
print(pcb)
# ADT
class PCB:
...
def __lt__(self, other):
selfPriority = (self.priority, self.creationTime)
otherPriority = (other.priority, other.creationTime)
return selfPriority < otherPriority
# in the main function
q = ReadyQueue()
q.enqueue(PCB("p1", 0, None, q))
q.enqueue(PCB("p8", 6, None, q))
q.enqueue(PCB("p2", 1, None, q))
q.enqueue(PCB("p0", 1, None, q))
q.enqueue(PCB("p6", 1, None, q))
q.enqueue(PCB("p4", 1, None, q))
q.enqueue(PCB("p3", 2, None, q))
q.listAll()
輸出順序:
PID Name Status Priority
==========================================
0 p1 ready_s 0
3 p0 ready_s 1
2 p2 ready_s 1
1 p8 ready_s 6
4 p6 ready_s 1
5 p4 ready_s 1
6 p3 ready_s 2
通知優先權是不正確的。雖然他們沒有出現在創作秩序中......我錯過了什麼嗎?