自己在项目的开发中,一般能避免在单个进程中使用多线程就尽量把每个线程包装成独立的进程执行,通过socket或者一些中间件比如redis进行通讯,工作,协调。 但有时候必须涉及到多线程操作,而且碰到的情况中,多个线程必须协调全部正常工作才能执行逻辑,但子线程有着自己的栈区,报错了并不影响其它的线程,导致整个进程无法退出。
下面的代码产生 100 个线程并随机生成一个异常。即使所有线程都执行完毕(同时产生了一些异常),主程序仍然没有退出。难道我做错了什么?需要修改什么才能让其中一个线程发生异常,主线程仍然退出? from __future__ import print_function from threading import Thread import sys import random from queue import Queue ...