POSIX 대기열에서 메시지를받을 때 어떻게 메모리를 절약합니까?POSIX 대기열에서 메시지를받을 때 어떻게 메모리를 절약합니까?
다중 프로세스/다중 스레드 환경에서 POSIX 대기열을 사용할 때 max_msgsize보다 작은 버퍼로 메시지를 대기열에서 안전하게 제거하는 방법은 없습니다.
표준이 문제에 대한 해결책이 있습니까? 아니면 문제 일까?
다른 훌륭한 라이브러리가 있음을 잘 알고 있지만, 종속성을 다루지 않으려는 사용자를 위해 완전히 표준적인 솔루션을 포함하고자했습니다.
참고 : 저는 메시지 당 잠재적으로 수백 메가 바이트를 대기열에 넣고 처리를 위해 메시지를 대기열에서 제거하는 여러 스레드가있는 프로세스 풀이 있습니다.
덕분에, Chenz
왜 액세스를 보호하기 위해 세마포를 사용할 수 없습니까? 아마 나는 그 질문을 이해하지 못한다. – frankc
큐에있는 다음 메시지의 크기를 쿼리 할 방법이 없으므로 메시지에 허용 된 최대 크기와 동일한 버퍼를 할당해야합니다. –
감사합니다. 이제는 이해합니다. – frankc