2016-08-02 3 views
0

저는 파이썬에서 다른 프로세스로 작업하려고합니다. 특정 인스턴스의 PID를 얻는데 어려움을 겪고 있습니다.Python - 인스턴스의 프로세스 ID를 얻으십시오.

예를 들어, 내가 하나 개의 클래스에 mainCar 인스턴스를 보내고있다 : 창고 클래스의

warehouse = Warehouse() 
mainCar = Car().start() 
warehouse.add(mainCar) 

, 내가 mainCar 변수를 기기 수령과 PID

을 알고 싶어하고있어 어떻게 할 mainCar 변수를 사용하여 프로세스 ID를 얻으시겠습니까? 나는이 변수를 다른 클래스에 전달할 것이고이 변수의 프로세스 ID는 os.getpid()가주는 것과 다를 것이다.

미리 감사드립니다.

+1

Car(). start()가 하위 프로세스를 생성합니까? – Owen

+0

다중 처리 프로세스의 인스턴스에는 'pid' 속성이 있습니다. 프로세스가 시작되기 전에 아무 것도 없으며 나중에 값이 있습니다. –

+0

"이 변수의 프로세스 ID는 os.getpid()가 제공하는 것과 다릅니다."왜 다른가? 어떻게 알았어? – Evert

답변

0

나는 당신이 근본적으로 무슨 일이 일어나고 있는지 오해하고 있다고 생각합니다. 물체가 이라는 PID가없는 개념이 없기 때문에 질문은 여전히 ​​의미가 없습니다. 다중 프로세스 모듈을 사용하여 다중 프로세스를 생성하고 큐를 사용하여 객체를 전달한 경우에도 객체를 자동으로 생성 한 프로세스의 PID를 알려주는 Python 함수는 없습니다.

당신은 발신자의 PID를 추적하는 수업이 뭔가를 추가 할 수 있습니다

class PID_Tracked(object): 
    def __init__(self) 
     self.originating_PID = os.getpid() 

당신이 수동으로 데이터를 저장하지 않는 그러나, 객체, 자신을 만든 프로세스의 PID 사이 제로 협회가를 .

이 모든 경우의 예외 중 하나는 멀티 프로세싱 모듈을 사용하는 경우입니다. 이 모듈의 일부 클래스는 스폰 된 프로세스를 추적하는 PID를 제공합니다. 그러나 귀하의 질문 중 아무것도 다중 처리 (현재)를 사용하고 있음을 나타내지 않으므로 이에 대한 논의는 제외했습니다.

+0

감사합니다 @ skrrgwasme, 내 질문에 대답! 나는 지금 논리를 이해한다. PID를 얻는 방법이 있다고 생각했습니다. – ForeverLearning

관련 문제