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

使用键盘中断关闭所有线程

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

使用键盘中断关闭所有线程

类似的问题是“如何杀死线程?”

您在线程中创建退出处理程序,该处理程序由线程模块中的锁或事件对象控制。然后,您只需删除锁或向事件对象发出信号。这通知线程应该停止处理并正常退出。在你的主程序信号线后,剩下要做的唯一事情是使用

thread.join()
的方法
main
,这将等待线程关闭。

一个简短的例子:

import threadingimport timedef timed_output(name, delay, run_event):    while run_event.is_set():        time.sleep(delay)        print name,": New Message!"def main():    run_event = threading.Event()    run_event.set()    d1 = 1    t1 = threading.Thread(target = timed_output, args = ("bob",d1,run_event))    d2 = 2    t2 = threading.Thread(target = timed_output, args = ("paul",d2,run_event))    t1.start()    time.sleep(.5)    t2.start()    try:        while 1: time.sleep(.1)    except KeyboardInterrupt:        print "attempting to close threads. Max wait =",max(d1,d2)        run_event.clear()        t1.join()        t2.join()        print "threads successfully closed"if __name__ == '__main__':    main()

如果您确实需要 杀死
线程的功能,请使用多处理。它允许您将SIGTERM发送到各个“进程”(它也与线程模块非常相似)。一般而言,线程是针对您的IO绑定,而多处理则是针对您的处理器的绑定。



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

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

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