Остановить несколько потоков, если произошла ошибка, и продолжить работу основного потока?питон - PullRequest
0 голосов
/ 15 мая 2018

Есть ли способ остановить все потоки в списке, если в одном из них возникает ошибка, не останавливая основной поток?

from threading import Thread

def build_packages(pkg_id):
    try:
        # do something
    except Exception:
        # stop all threads except main thread

threads = []

for pkg_id in pkgs:
    t = Thread(target=build_packages, args=[pkg_id])

    threads.append(t)
    t.setDaemon(True)
    t.start()

for t in threads:
    t.join()
...