2014-07-21 1 views
1

안녕하세요, 저는 파이썬에서 동시에 두 개의 함수를 실행하려고합니다. 두 제품 모두 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

'Process (target = readMeter1())'이 아닌'Process (target = readMeter1)'이어야합니다. 'readMeter2'와 같습니다. – bereal

답변

2

매개 변수 target은 뭔가 부름이 가능해야합니다 (귀하의 경우 함수). 당신은 start()가 새로운 프로세스를 실행 한 후 그것을 할 것입니다, 그 함수를 직접 호출 할 필요는 없다 :

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

당신이 readMeter1를 호출하기 때문에, 그것은 다른 현재의 프로세스 및 블록 모든 일에 무한 루프를 시작합니다.

+0

감사합니다. 그 일이 끝났어. – Martin

관련 문제