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

Python多线程基础问题:Thread创建的线程未并行执行原因排查

Python多线程未并行执行问题原因

你对Thread类的传参规则理解有误:

  • 创建Thread实例时,target参数需要接收可调用对象本身,你写的target=function('thr1.txt')是直接在主线程中执行了function函数,把函数的返回值(该函数无返回值,实际传入的是None)传给了target。因此还未调用start()方法,两个函数就已经在主线程按顺序执行完成,自然不会出现并行效果。
修复代码

将函数参数通过Thread的args参数传递即可,修改后的主线程逻辑如下:

if __name__ == '__main__':
    # target传入函数本身,不加括号,参数放到args元组中
    thr1 = Thread(target=function, args=('thr1.txt',))
    thr2 = Thread(target=function, args=('thr2.txt',))

    thr1.start()
    thr2.start()
    # 若需要等待所有子线程执行完毕再结束主线程,可添加如下join代码
    thr1.join()
    thr2.join()

注意:args接收的是元组类型,若仅传入1个参数,末尾需要加逗号,避免被Python解析为普通字符串而非元组。

效果验证

修改后运行代码,会看到两个文件的打印输出交替出现,说明两个线程已经并行执行,内容也会同时写入两个目标文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 23:06:03