Python多处理第二个进程无法启动

时间:2014-07-21 12:10:32

标签: python concurrency multiprocessing

您好我试图在python中同时运行2个函数。两者都通过USB读取2个独立仪表的数据,并且它们不相互依赖。我尝试过多处理,但第二个仪表从未启动过。

def readMeter1():
   while True:
       #read Meter1

def readMeter2():
   while True:
       #read Meter2

if __name__ == "__main__":
Process(target = readMeter1()).start()
Process(target = readMeter2()).start()

1 个答案:

答案 0 :(得分:2)

参数target必须是可调用的(在您的情况下是一个函数)。您不需要自己调用该函数,start()将在启动新进程后执行此操作:

Process(target=readMeter1).start()  # fork a new process, call readMeter1
Process(target=readMeter2).start()  # fork a new process, call readMeter2

因为你调用readMeter1,它会在当前进程中启动一个无限循环并阻止其他所有循环。