You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多线程脚本如何实现无性能损耗的无限休眠?

优雅实现Python多线程脚本的无限休眠

针对你在多线程脚本末尾需要添加低性能消耗无限休眠的需求,我来拆解下常见方案的优缺点,再给个更靠谱的解决思路:

常见方案及各自痛点

  • 短休眠循环:
    用while True: time.sleep(1)确实能实现需求,每秒唤醒一次的性能开销几乎可以忽略,但写法确实显得不够简洁优雅,有种“为了凑循环而循环”的生硬感。

  • 超长时长休眠:
    尝试time.sleep(4000000)这类超大数值的问题在于,你没法确定time.sleep()能接受的最大参数——Python3里的sys.maxsize数值过大,直接传入可能导致参数被截断或者抛出异常,而且硬编码一个超大数字也不够灵活,哪天这个时长不够用了还得改代码。

  • signal.pause():
    这个方法在Unix/Linux系统上非常优雅,会一直阻塞到收到信号才退出,但它的致命问题是仅支持Unix类系统,Windows环境下完全无法使用,兼容性大打折扣。

更优雅的跨平台方案

其实你可以用threading模块的Event对象来实现无性能损耗的永久阻塞:

import threading

# 创建一个永远不会被触发的事件
stop_event = threading.Event()
# 等待事件触发——因为永远不会触发,所以会一直阻塞在这里
stop_event.wait()

这个方法的优势很明显:

  • 完全跨平台,Windows和Unix系统都能正常工作
  • 没有定期唤醒的开销,线程会进入真正的休眠状态,几乎不占用CPU资源
  • 代码写法简洁优雅,逻辑清晰(如果后续需要主动退出休眠,只需要调用stop_event.set()即可)

内容的提问来源于stack exchange,提问作者WoJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:55:54