Как отметить элемент из списка очередей [Python] - PullRequest
0 голосов
/ 07 мая 2018

У меня есть список строк в очереди

queue = ["First","Second","Third","Fourth","",etc]

Фрагмент кода:

import thread
from thread import Threading
import Queue
import time

class MainThread(threading.Thread):
    def __init__(self,queue):
        threading.Thread.__init__(self)
        self.queue = queue

    def run(self):
        Details = self.queue.get()
        Trail = Details
        #..........#
        # Now Mark If Trail Can Be Use Again Or Not
        self.queue.put(Trail) # Now Put Them Back No Matter What
        self.queue.task_done()

queue = Queue.Queue(maxsize=0)
while not #...........#
    for i in range(TotalThreads):
        try:
            t = ThreadingPower(queue)
            t.setDaemon(False)
            t.start()
        except:
            time.sleep(5)

Мой вопрос: если строка «Первый» из очереди не может быть использована снова, как я могу пометить ее на определенное время, чтобы поток мог продолжать захватывать другое и игнорировать его, пока определенное время не закончится

Редактировать:

В настоящее время у меня есть решение

queue = [["First",1],["Second",1],["Third",1],["Fourth",1],etc]


class MainThread(threading.Thread):
    def __init__(self,queue):
        threading.Thread.__init__(self)
        self.queue = queue
    def run(self):
    Details = self.queue.get()
    Trail,State = Details
    if State == 1:
        #................#
        if #.............#:
            State = 0
    self.queue.put((Trail,State)) # Now Put Them Back No Matter What
    self.queue.task_done()

queue = Queue.Queue(maxsize=0)
while not #...........#
    for i in range(TotalThreads):
        try:
            t = ThreadingPower(queue)
            t.setDaemon(False)
            t.start()
        except:
            time.sleep(5)

Однако это работает, только если я хочу отключить их навсегда, мне нужно решение, где я могу отключить их на определенное время

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