如何实现Python多函数并行运行?现有multiprocessing代码存在阻塞问题
问题原因与解决方案
- 核心错误:创建
multiprocessing.Process时,target参数传入的是函数调用结果(比如function1()),而非函数本身。这会导致主进程先执行完function1,再创建进程对象,完全失去多进程并行的作用。 - 修正方法:将
target的值改为函数名(不带括号),如果函数需要传参,通过args参数传递参数元组。
修正后的代码
import multiprocessing # target传入函数名,不要加括号执行 process1 = multiprocessing.Process(target=function1) process1.start() process2 = multiprocessing.Process(target=function2) process2.start() process3 = multiprocessing.Process(target=function3) process3.start() process1.join() process2.join() process3.join()
补充:带参数的函数处理
如果你的函数需要接收参数,比如function1(a, b),可以通过args传递参数:
process1 = multiprocessing.Process(target=function1, args=(10, 20))
内容的提问来源于stack exchange,提问作者BioRod
相关产品推荐
相关产品推荐

