栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

一段时间后杀死线程的大多数Python方法

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

一段时间后杀死线程的大多数Python方法

在这种情况下,使用事件作为信号传递机制就可以了,实际上在线程模块docs中建议使用。

如果您希望线程正常停止,请使其成为非守护进程,并使用适当的信号传递机制,例如

Event

验证线程终止时,超时几乎总是会引入错误空间。因此,虽然将

.join()
with超时用于触发事件的初始决策是可以的,但最终验证应使用
.join()
没有超时的a
进行。

# wait 30 seconds for the thread to finish its workt.join(30)if t.is_alive():    print "thread is not done, setting event to kill thread."    e.set()    # The thread can still be running at this point. For example, if the     # thread's call to isSet() returns right before this call to set(), then    # the thread will still perform the full 1 second sleep and the rest of     # the loop before finally stopping.else:    print "thread has already finished."# Thread can still be alive at this point. Do another join without a timeout # to verify thread shutdown.t.join()

可以简化为以下形式:

# Wait for at most 30 seconds for the thread to complete.t.join(30)# Always signal the event. Whether the thread has already finished or not, # the result will be the same.e.set()# Now join without a timeout knowing that the thread is either already # finished or will finish "soon."t.join()


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/639128.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号