2012-10-17 6 views
0

프로세스 pid에는 pid1 및 pid2라는 두 개의 하위 프로세스가 있으며, 이제는 특정 조건을 기반으로하며, 일부 작업은 런타임에 pid1 및 pid2에 할당되어야합니다.다중 처리

while(1) 
{ 
if(x is even) 
    { 
    send data to pid1 ; 
    } 
else 
    { 
    send data to pid2 ; 
    } 
} 

부모 프로세스에서 런타임에 하위 프로세스에 메시지를 보내야합니다. 할 방법이 있습니까? 감사합니다. .

+1

을 여기 좀 걸릴 수 있습니다 : http://en.wikipedia.org/wiki/Inter-process_communication – Naytzyrhc

답변

0

프로세스 메시징을 위해 소켓 프로그래밍 또는 공유 메모리에서 활용할 수 있습니다.

0

자식 프로세스 대신 두 개의 스레드를 만들 수 있습니다. 부모는 데이터 유형 (짝수/홀수)을 기반으로 두 개의 다른 대기열에 삽입해야합니다 (예 : EvenDataQ & OddDataQ).

  1. 처리 할 스레드 심지어 x 데이터; 그것은 데이터를 선택합니다 EvenDataQ
  2. 처리 할 또 다른 스레드 홀수 x 데이터; 각 큐에 대한 두 뮤텍스를 사용 OddDataQ

에서 데이터를 픽업. 대기열 구현은 귀하에게 달려 있습니다.

추 신 : - 스레드는 프로세스보다 가볍 습니다. - 시나리오를 쉽게 구현할 수 있습니다.

+0

덕분에 그것을 위해, 나는 그것을 시도 할 것이다 .. –

0

가정 :: 당신은 두 자식 프로세스의 PID를 알고 있습니다.

당신은 항상 시작이 ::

while(1) 
{ 
if(x is even && PID_Of_pid1 == PID_Of_First_Child(xxx)) 
    { 
    send data to pid1 ; 
    } 
else 
    { 
    send data to pid2 ; 
    } 
} 
+0

예, 나는 pids를 알고 있지만 while 루프가 있으므로 데이터, 일부 텍스트 메시지를이 자식 프로세스에 보내야합니다. 모든 루프에서 생각합니다. 소켓 또는 공유 메모리를 시도하지만 감사합니다 –

+0

내 기쁨 :-) – Abhineet