posix 메시지큐 예제

일부 독점 구현은 HTTP를 사용하여 Amazon의 SQS와 같은 일부 구현에서 메시지 대기열을 제공합니다. 이는 요청 응답 의미체계를 사용하여 동기 프로토콜을 통해 비동기 동작(메시지 큐에 필요한 동작)을 계층화할 수 있기 때문입니다. 그러나 이러한 구현은 이 경우 기본 프로토콜에 의해 제한되며 위의 메시지를 전달하는 데 필요한 전체 충실도 또는 옵션 집합을 제공하지 못할 수 있습니다. 긴 필드는 메시지의 형식을 지정하고 배열에는 메시지 문자열의 내용이 포함됩니다. 메시지를 보내거나 받을 때 msgsz 또는 maxmsgsz 매개 변수는 이 구조체 내의 char 배열의 길이로 설정되어야 합니다. 다음 예제에서는 위에 정의된 구조체를 사용하여 메시지 큐를 설정하고 단일 메시지를 보내는 방법을 보여 주며 있습니다. 사용 중널리 알려진 많은 통신 프로토콜이 동기적으로 작동합니다. 월드 와이드 웹 및 웹 서비스에서 사용되는 HTTP 프로토콜은 사용자가 웹 페이지에 대한 요청을 보낸 다음 회신을 기다리는 명백한 예를 제공합니다. POSIX 메시지 큐를 사용하면 여러 판독기와 기록기가 있는 효율적인 우선 순위 기반 IPC 메커니즘을 사용할 수 있습니다. 숙련된 POSIX 프로그래머의 경우 이 설명은 명명된 파이프의 이미지를 호출합니다. 그러나 파이프와 메시지 큐 간에는 몇 가지 근본적인 차이점이 있습니다: UNIX SYS V는 연결된 목록의 배열을 메시지 큐로 유지하여 전달메시지를 구현합니다. 각 메시지 큐는 배열의 인덱스로 식별되며 고유한 설명자가 있습니다. 지정된 인덱스에는 여러 개의 설명자가 있을 수 있습니다.

UNIX는 메시지 전달 기능에 액세스하는 표준 기능을 제공합니다. [7] gcc queue_example_threads.c-o queue_example_threads -lrt-lpthread를 컴파일합니다. 그러나 동기 동작이 적절하지 않은 시나리오가 있습니다. 예를 들어 AJAX(비동기 자바스크립트 및 XML)를 사용하여 텍스트, JSON 또는 XML 메시지를 비동기적으로 전송하여 보다 관련성 이 있는 정보로 웹 페이지의 일부를 업데이트할 수 있습니다. Google은 사용자의 부분적으로 입력된 쿼리를 Google 서버로 전송하고 사용자가 입력하는 과정에 관심이 있을 수 있는 전체 쿼리 목록을 반환하는 검색 기능인 Google 제안(Google 제안)에 이 방법을 사용합니다. 이 목록은 사용자 유형으로 비동기적으로 업데이트됩니다. 지금까지 메시지 큐잉은 독점적이고 폐쇄적인 프로토콜을 사용하여 다양한 운영 체제 또는 프로그래밍 언어가 이기종 환경에서 상호 작용하는 기능을 제한했습니다.