Python多线程 坑Unhandled exception in thread started by Error in sys.excepthook

先给大家推荐翻滚吧挨踢男的博客Python菜鸟学习手册15----多线程写的又有趣又易于理解

第一个demo我就踩了一次坑:

def foo(tag, delay):
    count = 0
    while count < 5:
        time.sleep(delay)
        count += 1
        print("%s:%s" % (tag, time.ctime(time.time())))


try:
    _thread.start_new_thread(foo, ("thread1", 2))
    _thread.start_new_thread(foo, ("thread2", 5))

except:
    print("error")

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

然后网友们说在try最后面加个延时函数time.sleep(3)。但是只打印了两个。这是为什么呢?

首先我们先分析一下,为什么最后要加一个sleep?time.sleep(delay)是子线程来执行的,就是我们新建thread1和thread2。而我们的主线程执行的就是try后面加的time.sleep(3)。故事是这样的,在某一天,主线程被命令睡觉了,然后它睡了一会,然后醒来发现他该去死了,然后主线程就去死了,子线程看见主线程死了,悲痛欲绝,“MD我也不活了”,两个子线程也去死了。他们都死光后留下了一个错误“Unhandled exception in thread started by Error in sys.excepthook”而且只打印了两个信息。

聪明的网友们为了让子线程得以打印信息就挖了一个坑给主线程:

在整个程序最后面添加:

while(1):
    pass

这个坑太深主线程不能跳出来,只能由码农们强制终止程序,但也成功避免了主程序去死。在java里面sleep是不会交出CPU使用权,在python里面呢?在看过知乎大牛们的看法。

Python中的多线程只能利用单核,不交出使用权大家都是用不了。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 驱动精灵是一款非常实用的电脑维护工具,它可以帮助用户自动升级、安装、修复电脑中的驱动程序。在遇到“unhandled exception has occurred in your application. if you c”这种错误时,驱动精灵也可以帮助用户解决问题。 首先,用户可以通过打开驱动精灵的主界面,点击“一键修复”按钮来尝试解决问题。驱动精灵会自动检测用户电脑中存在的所有驱动程序,并进行自动升级和修复,从而消除可能导致该错误的驱动程序问题。 如果“一键修复”无法解决问题,用户还可以试着通过驱动精灵手动升级、安装、修复相关驱动程序。用户只需在驱动精灵界面中找到需要升级、安装、修复的驱动程序,单击对应的按钮即可。 同时,用户还可以尝试重装操作系统来解决“unhandled exception has occurred in your application. if you c”错误。重新安装操作系统可以清除电脑中所有的驱动程序和系统文件,从而排除可能导致该错误的问题。为了避免数据丢失,请在重装系统前备份重要的数据。 ### 回答2: 驱动精灵是一款系统驱动程序管理软件,可以帮助用户更好地管理电脑硬件设备的驱动程序,优化电脑性能和解决常见问题。如果用户的电脑出现了“unhandled exception has occurred in your application. if you c”的错误提示,可以尝试使用驱动精灵进行以下操作: 首先,打开驱动精灵并更新所有可更新的驱动程序。这可能会解决一些与硬件驱动程序相关的问题,从而减少出现错误的可能性。 其次,检查电脑是否有任何病毒或恶意软件感染。使用杀毒软件进行全面扫描以确保电脑的安全性。 最后,确保操作系统和所有程序都是最新版本,同时尝试清除系统垃圾文件和无用文件,以确保系统能够更好地运行。 总之,驱动精灵可以在一定程度上帮助用户解决“unhandled exception has occurred in your application. if you c”的错误提示。但是,如果以上方法都无法解决问题,用户可能需要寻求更专业的技术支持。 ### 回答3: 驱动精灵是一款能够协助用户寻找并安装适合硬件设备的驱动程序的工具软件。在使用计算机时,有时会出现“unhandled exception has occurred in your application. if you c”的问题,这通常是由于硬件设备驱动程序出现错误或丢失导致的。通过使用驱动精灵,可以尝试自动搜索、下载和安装适合该设备的最新驱动程序,从而解决该问题。此外,还可以通过手动更新驱动程序的方式尝试解决该问题,但是需要用户自己去寻找并下载正确版本的驱动程序,操作比较繁琐。综上所述,使用驱动精灵是一种便捷、快速解决计算机硬件设备驱动问题的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值