Как получить доступ к индексу в очереди - PullRequest
0 голосов
/ 31 октября 2018

Я использую очередь в Python, чтобы выдвинуть задачи, которые должны быть обработаны (я использую класс Queue в Python). Я знаю, что очередь имеет поведение FIFO, но для В целях балансировки нагрузки мне нужно перенести несколько элементов в очереди (из конца очереди) на другой процессор.

Например, предположим, у меня есть 100 задач в моей очереди, я хочу перенести от 80-го до 100-го элемента на другой процессор, поэтому мой вопрос: возможно ли получить доступ к специальному индексу (например, 80-му индексу) в очереди?

1 Ответ

0 голосов
/ 31 октября 2018

Самый простой способ реализовать стек или очередь в 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

РЕДАКТИРОВАТЬ: Ой, вы редактировали свой пост.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...