#!는 / usr / 빈 / 펄 사용 IPC :: 시스템 V QW (IPC_PRIVATE IPC_CREAT S_IRWXU); IPC를 사용 :: 메시지를; 내 $ 큐 = IPC :: Msg-> 새 (IPC_PRIVATE, S_IRWXU | IPC_CREAT); $ MSGTYPE = 6; $ msgdata = "안녕하세요 세계!"; 내 $ PID = 포크 (); (정의되지 $의 PID) {경우 인쇄 "자원을 사용할 수 없습니다합니다. \ n"; } ELSIF ($ PID == 0) { 인쇄 "나는 아이 생각을합니다. \ n"; 잠 3; "나는 아이 1.1 생각합니다. \ n"인쇄; $ queue-> SND ($ MSGTYPE, $ msgdata을); "나는 아이 1.2 생각합니다. \ n"인쇄; 잠이; "나는 아이를 오전 2 \ n"인쇄; 출구 (0); } 다른 { 인쇄 "나는 1 \ n은 부모에게 나는"; $ TYPE = $ queue-> RCV ($ BUF, 256); $ DS = $ queue-> 통계; $ 버피를 인쇄; $ DS를 인쇄; ". PID => $ PID를 종료 \ n"인쇄; $ 고해상도 = $ queue-> 삭제; 인쇄 "제거 고해상도 => $ 고해상도합니다. \ n"; 경우 {(정의 $ 고해상도!) 인쇄 "안녕하세요 => $ \ n!."; } ($ PID, 0)는 waitpid; }
자식 프로세스는 메시지, 메시지를받을 수있는 부모 프로세스를 보낼 수 있습니다. 어떤 queue-> RCV이 차단됩니다.