请问python多线程 为何不加__name__ == __main__会出错?


from concurrent.futures import ProcessPoolExecutor

def Print(var):
    print(f"# {var} #")

def multi_process():
    array = [i for i in range(50)]
    with ProcessPoolExecutor() as pool:
        pool.map(Print, array)


multi_process() 

# if __name__ == '__main__': 
#     multi_process()

不加name = main的情况

img

加上后能正常运行:

img

debug发现不加name = main的情况下 程序会不断创建新的进程, 然后抛出runtime异常
请问python 多进程的原理是否是将当前执行的脚本文件重新执行一次? 那为何加上name=main又能够正常运行?