fork()
을 사용하여 다중 프로세스 응용 프로그램을 만들면 FIFO 파이프를 사용하여 통신 할 수 있습니다. C++은 다중 스레드 응용 프로그램 만 지원하며 다중 프로세스 응용 프로그램을 원한다면 fork()
에 의존해야한다는 것을 알았습니다.다중 프로세스 C++ fifo
그러나 C++에서 유형 검사가 중요하므로 어떤 위험도없이 파이프를 통해 객체를 파이프 할 수 없습니다. 으로 전송하고 sizeof
에게 물어보고 파이프를 통해 모든 것을 보내면 원래 개체로 다시 캐스팅됩니다.
왜 이렇게 느껴지나요? 다중 프로세스 아키텍처가 C++에서 사용되지 않았거나 라이브러리 또는 더 나은 방법으로 작업하고 있습니다. 내가 봤 거든 당신이 발견 한 유일한 것은 멀티 스레드 C 또는 다중 프로세스 C입니다.
더 많은 프로세스를 원한 이유는 내 응용 프로그램을 가능한 한 강력하게 만들고 싶기 때문입니다. 내 웹 서비스가 망가질 경우 주 프로세스에서 다시 시작해야합니다. 하나의 쓰레드가 다른 쓰레드에서 메모리를 손상시키지 않았다는 것을 결코 알지 못하기 때문에 다중 쓰레드를 수행 할 방법이 없다. 그래서 한 쓰레드에서 에러가 발생한다면 안전 장치를 다시 시작해야한다.
"다중 프로세스"를 의미합니다. * 다중 처리 *는 다중 스레드, 다중 프로세스 및 SIMD (단일 스레드이지만 동시에 여러 데이터를 처리하는)를 포함하여 훨씬 광범위한 용어입니다. multi-process를 의미하는'ipc '태그가 붙어있다. –
이 질문은 너무 광범위합니다. 'fork', 그리고'void *'와'sizeof', 멀티 스레딩 .. 강건성에 대해 언급합니다. – Ajay
당신이 처리하고자하는 "대상"이 무엇인지 이해하는 것은 확실히 도움이 될 것입니다. 얼마나 큰데, 어떤 종류의 데이터가 포함되어 있습니까? –