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

为何第二个Python函数无法运行?存在无限循环问题

问题解答:第二个函数不执行的原因及解决方法

为什么b()不执行?

  • Python默认是单线程执行模型,你的代码中a()是无限循环,调用a()后,主线程会被这个循环永久占用,程序永远不会走到b()的调用语句,自然无法执行b()。

实现两个函数同时无限运行的解决方案

要让两个无限循环的函数同时运行,需要用到多线程,把两个函数分配到不同的线程中执行。示例代码如下:

import time
import threading

def a():
    while True:
        time.sleep(1)
        print('Ha')
 
def b():
    while True:
        time.sleep(2)
        print('Ho')

# 创建线程对象,指定要执行的函数
t1 = threading.Thread(target=a)
t2 = threading.Thread(target=b)

# 启动线程
t1.start()
t2.start()

# 让主线程等待子线程结束(因子线程是无限循环,主线程会持续等待以保证子线程运行)
t1.join()
t2.join()
  • 通过threading.Thread创建两个独立线程,分别绑定a()和b()。启动线程后,两个函数会并行执行,各自的无限循环都能正常运行。
  • join()方法会让主线程等待子线程结束,由于两个子线程是无限循环,主线程会一直处于等待状态,确保子线程持续运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 12:05:34