Реализация групп потоков
Есть 5 групп потоков по несколько потоков в группе. Я пытаюсь добиться того, чтобы эти группы работали в цикле.То есть, 1 группа заканчивает работу, потоки убиваются и запускается следующая группа, потом следующая и т.д. и эти группы идут друг за другом.
import threading
from main import main
from settings import number_of_threads
def multithread(somedata):
lock = threading.RLock()
for _ in range(number_of_threads):
t = threading.Thread(target=main, args=(lock, somedata))
t.start()
if __name__ == '__main__':
while True:
for group in range(1,6)):
multithread(somedata)
Я пытаюсь сделать это таким образом, но это работает не так как требуется. Группы не ждут завершения всех предыдущих потоков группы. Как можно реализовать данную идею?
Ответы (1 шт):
Автор решения: Pigeoncatcher
→ Ссылка
Попробуйте сделать так
import threading
from main import main
from settings import number_of_threads
def multithread(somedata):
lock = threading.RLock()
threading_list = []
for _ in range(number_of_threads):
t = threading.Thread(target=main, args=(lock, somedata))
t.start()
threading_list.append(t)
for t in threading_list():
t.join()
if __name__ == '__main__':
while True:
for group in range(1,6):
multithread(somedata)