此时子线程是无限挂起状态,主线程已经无法杀死它。在主线程里监听信号,当有退出信号时,给子线程一个标志位,子线程识别到标志位,就在处理好事务后,主动结束自己(通常是函数的return或循环的break) ps.信号 SIGINT,代表 Ctrl+C 或 pm2 的 stop。信号 SIGTERM,代表 kill命令 或 pm2 的 kill。
signal.signal(signal.SIGINT,sigint_handler) 在100秒内按下ctrl-c没有反应,只有当子线程结束后才会出现打印 "main-thread exit",可见 ctrl-c被阻测了 threading 中在主线程结束时进行的操作: _shutdown = _MainThread()._exitfunc def _exitfunc(self): self._Thread__stop() t = _pickSomeNonDaemonThrea...
input('按键退出')
signal.signal(signal.SIGINT,sigint_handler) 在100秒内按下ctrl-c没有反应,只有当子线程结束后才会出现打印 "main-thread exit",可见 ctrl-c被阻测了 threading 中在主线程结束时进行的操作: _shutdown = _MainThread()._exitfunc def _exitfunc(self): self._Thread__stop() t = _pickSomeNonDaemonThrea...
探寻python多线程ctrl+c退出问题解决方案 场景: 经常会遇到下述问题:很多io busy的应用采取多线程的方式来解决,但这时候会发现python命令行不响应ctrl-c 了,而对应的java代码则没有问题: 复制代码代码如下: public class Test { public static void main(String[] args) throws Exception {...