2011-05-04 4 views
1

나는 독립적으로 달리기를 원하는 다양한 파이썬 함수를 가지고있다. exmaple 들어 , DEF 그래픽() 모든 GUI 요소에 대한 책임 및 GUI 데프이 함수는 항상 수신하고 다른 시스템python에서 다른 하위 프로세스를 독립적으로 실행하는 방법은 무엇입니까?

문제는 이들 두 기능을 병렬로 실행하지 않는 것이다 연결 connect()를 렌더링한다. 나는이

p = Process (target = graphic() , args =())  
p1 = Process (target = connect() , args =()) 
p.start() 
p1.start() 
p.join() 
p1.join() 

다른 프로세스에서 실행됩니다 그겁니다이이 개 기능

가 병렬로 실행되지 않는 코드의 요지입니다 파이썬 에 멀티 모듈을 사용했다. GUI를 닫을 경우에만 시스템에 연결할 수 있습니다. 내가 그래픽 방식으로 실행하고 독립적으로 기능을 연결할 수있는 병렬 방식으로 프로세스를 생성 할 수있는 방법이 있습니까?

+1

정교하게 만드실 수 있습니까? 위의 코드에서 어떤 행동을 기대합니까? "평행하게 뛰지 않는다"는 것은 무엇을 의미합니까? –

+0

기본적으로 그래픽 함수는 GUI를 렌더링 할 책임이 있습니다. Tkinter를 사용하여 코딩했습니다. 이제 connect 함수는 여러 다른 시스템에서 끊임없이 반복하여 연결을받습니다. 그래서 여기에 내가 한 것입니다. 나는이 프로그램을 실행하고 다른 터미널에서이 마스터 시스템에 연결하려는 슬레이브 시스템을 해고했다. 요점은, GUI를 닫을 때 연결이 일어나는 것뿐입니다. 그래픽 기능을 종료합니다. 이 두 함수가 독립적이고 병렬 적으로 실행되는 것과는 다릅니다. – Rahul

+0

당신은 당신이보고있는 것을보고 있는지를 확인하기 위해이 두 함수를 별도의 파이썬 프로세스에서 직접 실행 해 보았습니까? CPU 사이클을 제외하고 어떤 종류의 리소스 경쟁이있을 수 있습니다. –

답변

4

아마도 함수에 대한 참조를 전달하지 않고 함수를 호출했기 때문일 수 있습니다. 즉, 처음 두 줄은 다음과 같아야합니다.

p = Process(target=graphic, args=()) 
p1 = Process(target=connect, args=()) 
+2

엄밀히 말하면,'args =()'인수는 필요하지 않습니다. –

+0

좋은 캐치! 그것을 완전히 훑어 보았다! –

관련 문제