前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python报错: Unhandled exception in thread started by Error in sys.excepthook

Python报错: Unhandled exception in thread started by Error in sys.excepthook

作者头像
Bob.Chen
发布2018-05-02 13:59:09
5K0
发布2018-05-02 13:59:09
举报

今天要写个简单脚本,模拟同时50个用户往服务器上传东西。 就简单用

代码语言:javascript
复制
thread.start_new_thread(func, ())

结果运行的时候报错:

代码语言:javascript
复制
Unhandled exception in thread started by   
Error in sys.excepthook:   
Original exception was: 

想了一下,原来是子线程还没退出,主线程就退出了,需要确保主线程等待所有子线程退出后再退出,如果主线程比子线程早结束,子线程就会中断,抛出这个异常。简单加个sleep,就没有报错了,当然,比较好的方法是给每个线程都加了一把锁,直到线程运行结束,再释放这个锁。同时在Python的main线程中用一个while循环来不停的判断每个线程锁已释放。

启动线程的时候把锁传进去:

代码语言:javascript
复制
thread.start_new_thread(loop,(function,(),lock));

在线程函数里面使用

代码语言:javascript
复制
lock.release();

在主线程里面使用while循环来检测锁是否都释放了

代码语言:javascript
复制
for lock in locks :      
    while lock.locked() :       
        pass;

OK,这样就搞定了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-01-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档