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

Python脚本中Threading线程失效:为何myname函数未执行?

线程无法正常工作的原因分析

你的代码存在一个核心错误,直接导致线程功能失效:

在创建threading.Thread对象时,你给target参数传入的是函数调用结果(带括号的infinite_loop()、myname()),而非函数本身。

具体问题拆解

看这两行关键代码:

t1 = threading.Thread(target=infinite_loop())
t2 = threading.Thread(target=myname())

当Python执行到t1 = threading.Thread(...)时,会优先执行infinite_loop()函数——而这个函数是无限死循环,程序会彻底卡在这个循环里,后续创建t2、启动线程的代码根本没机会运行,自然myname()永远不会被执行。

修复方法

将target参数改为传入函数对象(去掉函数名后的括号),这样线程对象会在调用start()时,才在新线程中触发函数执行:

import threading

def infinite_loop():
    while 1 == 1:
        pass

def myname():
    print("chralabya")

# 传递函数引用,而非函数调用结果
t1 = threading.Thread(target=infinite_loop)
t2 = threading.Thread(target=myname)

t1.start()
t2.start()

修改后,t1启动后会在独立线程中运行死循环,主线程可以继续执行t2.start(),myname()就能正常输出内容了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 02:25:51