Я хочу перезапустить прерванный поток в многопоточности. Первоначально моя очередь имеет только один URI. Позже я поставлю несколько URI в очередь. Я начал свой процесс с 5 потоков. Из этого 4 потока будут завершены в самом начале. Так как в моей очереди только один URI. После успешного завершения первого URI он помещает еще 5-10 URI в одну и ту же очередь. Но он будет работать только с одним потоком. Можно ли перезапустить завершенные темы? Пожалуйста, найдите мой пример кода и поделитесь своими идеями или предоставьте альтернативный способ для этого.
import Queue
import requests
from threading import Thread
class MyThread():
def __init__(self):
self.tc_queue = Queue.Queue()
self.no_threads = 5
self.tc_queue.put((<uri-1>)) #root URI
self.success_uri_list = []
def worker(self):
while not self.tc_queue.empty():
test_case = self.__tc_queue.get()
resp = requests.get(test_case[0])
if resp.status_code == 200:
self.success_uri_list.append(uri)
# from every uri response we'll get some more uri's and we put it in same queue
for uri in uri_list:
self.tc_queue.put((<uri>))
def manager(self):
threads = []
for i in range(self.no_threads):
th = Thread(target = self.worker)
th.start()
threads.append(th)
for th in threads:
th.join()
thrd = MyThread()
thrd.manager()