펄 메시지 큐

#!는 / 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이 차단됩니다.

추천

출처www.cnblogs.com/longchang/p/12015769.html