Python——子线程

子线程若为死循环,使用join()会导致主线程卡死,需设置daemon=True使子线程随主线程结束而退出。QTimer虽看似并行,实则仍在主线程,应避免长时间运行或无限循环以防止主线程卡死。在QTimer中可进行界面操作,但需注意执行效率。
摘要由CSDN通过智能技术生成

1、如果子线程是一个死循环,使用join()函数,不仅无法杀死该子线程,而且主线程也会卡死,因此在创建该子线程时,必须把daemon设置为True,即daemon=True,当主线程退出时子线程自动退出。即使子线程不是一个死循环,而是耗时较长,如果在其运行期间使用join()函数,也只能等待子线程运行完成才能杀死该子线程,在此期间主线程一直是卡死状态。综上所说,谨慎使用join()函数。

2、from PyQt5.QtCore import QTimer,QTimer并没有创建子线程,它仍属于主线程,它之所以可以与主线程并列运行,python可能使用了一种类似于时分复用的技术。它具备如下特点:
①在QTimer线程中,可以进行界面操作,而在子线程中却不可以;
②在QTimer线程中,不要出现无限循环或耗时太长,否则主线程会卡死;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值