我在python中使用队列来推送应该处理的任务(我在python中使用Queue类)我知道队列具有FIFO行为,但用于负载平衡目的我需要将队列中的许多项目(从队列末尾)传输到另一个处理器。
例如,假设我的队列中有100个任务,我想将第80至100个项目转移到另一个处理器,那么我的问题是:是否可以访问队列中的特殊索引(例如第80个索引)?
答案 0 :(得分:1)
在Python中实现堆栈或队列的最简单方法是使用列表。
如果您的类继承了list
类型,则可以使用instance_of_your_queue[79]
访问任何元素。
class Queue(list):
def enqueue(self, obj):
self.append(obj)
def dequeue(self):
return self.pop(0)
q = Queue()
q.enqueue(0)
q.enqueue(1)
q.enqueue(Task())
q.dequeue()
# return 0
q[1]
#return the Task you created
编辑:哎呀,您编辑了帖子。