2、核对是否后台程序过多,因运行资源不足导致程序意外中止,可定时关闭系统后台程序,或使用乐安全中的“手机加速”功能实现;
3、如果程序安装于外置存储卡,可能是外置存储卡问题导致,查看安装于内置存储中的应用是否存在此情况,也可以更换外置存储卡进行尝试;
4、如之前可以正常使用,可备份数据进行恢复出厂设置 *** 作。
通常情况,我们利用 Ctrl+C 让程序触发 KeyboardInterrupt 异常,中止程序运行。线程池方案下, Ctrl-C 失效,当线程池里的线程任务跑完后,才会触发 KeyboardInterrupt 。
上下文管理协议相当于隐性地省略了 threadPool.shutdown(wait=True) ,同时,程序正常执行完成或出现异常中断的时候,就会调用 __exit__() 方法,接下来进行异常中止的基础。
适用于 Django 等 WEB 应用框架,本身自带多线程,修改全局变量简单,但要注意线程安全。
程序运行中,只需 sign = 1 或者 exiting.set() ,worker 函数则跳过主要运算部分,剩余线程任务将迅速完成,变相达到中止多线程任务的目的。
提交给线程池的每个线程任务 task 加入 threadPool 中,方便后续对 task 进行 *** 作。当 for 循环内的 task 全部提交后,线程会再后台运行,而进程运行至 while 中堵塞,直至 threadPool 中最后一个线程是否 .done() 。若进程堵塞在 while 中接收到 Ctrl+C 的 KeyboardInterrupt 异常,则从后往前取消 threadPool 中所有任务,达到中止目的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)