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

Python threading线程启动问题:为何打印线程未执行?

Python threading 线程未执行问题分析

你的代码存在两个核心问题,导致info线程无法按预期运行:

1. Thread的target参数传递错误

创建线程时,target需要传入函数对象(仅写函数名,不带括号),而不是函数调用的结果(带括号会直接触发函数执行)。

看这段代码:

keyboard_listening = Thread(target=key_pressed())

这里key_pressed()会被立即执行,而非交给新线程运行。由于key_pressed内部有持续循环的while逻辑,程序会直接卡在这个函数里,后续创建info线程、调用info.start()的代码根本没机会执行。

正确写法:

keyboard_listening = Thread(target=key_pressed)

2. 带参数的线程函数传递方式错误

再看info线程的创建代码:

info = Thread(target=print("After thread"))

这里同样犯了"立即执行函数"的错误——print("After thread")会在创建线程时直接打印内容,而非由新线程执行。如果要给target函数传递参数,需要通过args或kwargs参数单独传入:

正确写法:

info = Thread(target=print, args=("After thread",))

注意args是元组格式,哪怕只有一个参数,也要加上结尾的逗号。

修正后的完整代码示例

from threading import Thread
import time

def key_pressed():
    while True:
        print("监听按键中...")
        time.sleep(1)

print("Waiting for key...")
keyboard_listening = Thread(target=key_pressed)
info = Thread(target=print, args=("After thread",))

keyboard_listening.start()
info.start()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 14:45:56