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

Python如何实现函数调用后延迟x秒执行且不阻塞主程序

原代码的问题是直接在主线程调用fun_1,其中的time.sleep会阻塞当前主线程,导致后续打印语句必须等延迟结束才能执行。你需要的是单次非阻塞延迟执行,不需要周期调度能力,直接用Python标准库threading开独立子线程跑延迟逻辑即可,无需安装第三方依赖。

修改后可直接运行的代码

import time
import threading

def fun_1(tim):
    time.sleep(tim)
    print("Be kind : ) ")

def fun_2():
    # 启动独立子线程执行延迟任务,不会阻塞当前主线程
    threading.Thread(target=fun_1, args=(2,), daemon=True).start()
    print(" Be Honest ")
    print("After 2 secs")

if __name__ == "__main__":
    fun_2()
    # 仅用于演示时保证子线程延迟任务能执行完,常驻业务程序不需要加这行
    time.sleep(3)

运行效果

  • 程序启动后无卡顿,立刻输出Be Honest、After 2 secs两行内容
  • 等待2秒后,子线程延迟结束,自动输出Be kind : )
  • 整个延迟等待过程完全不会阻塞主流程其他代码执行

参数说明

  • target=fun_1:指定子线程要运行的目标函数
  • args=(2,):传入目标函数的位置参数,对应fun_1的入参tim
  • daemon=True:标记线程为守护线程,主线程退出时会自动终止该线程,避免程序无法正常退出;如果你的场景要求主程序必须等延迟任务执行完再退出,移除该参数即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 23:39:20