如何使用无限循环的目标函数创建一个可停止的线程
发布时间:2020-12-16 22:45:56 所属栏目:Python 来源:网络整理
导读:假设我想在一个线程中运行一个名为run_forever()的函数,但是按Ctrl C仍然可以让它“停止”.我已经看到了使用threading.Thread的StoppableThread子类进行此操作的方法,但这些似乎将目标函数“复制”到该子类中.我想保持功能“它在哪里”. 请考虑以下示例: im
假设我想在一个线程中运行一个名为run_forever()的函数,但是按Ctrl C仍然可以让它“停止”.我已经看到了使用threading.Thread的StoppableThread子类进行此操作的方法,但这些似乎将目标函数“复制”到该子类中.我想保持功能“它在哪里”. 请考虑以下示例:
目标函数run_forever本身就是一个永不退出的while循环.但是,为了获得所需的行为,wait()命令必须在while循环中,正如我所理解的那样. 有没有办法在不修改run_forever()函数的情况下实现所需的行为? 最佳答案
我怀疑这是可能的.
顺便说一句,你有没有尝试过第二个解决方案 您之前链接的the post的ThreadWithExc? 如果循环繁忙的纯Python(例如没有睡眠),它可以工作,否则我会切换到多处理并杀死子进程.这是希望优雅退出的代码(仅限* nix):
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |