CINXE.COM

Message queue - Wikipedia

<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Message queue - Wikipedia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )enwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy", "wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"fac328a4-cfcc-4b95-a87d-b7d5d70aa5f3","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Message_queue","wgTitle":"Message queue","wgCurRevisionId":1249687459,"wgRevisionId":1249687459,"wgArticleId":429709,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Webarchive template wayback links","Articles with short description","Short description matches Wikidata","Articles needing additional references from May 2009","All articles needing additional references","Inter-process communication","Events (computing)","Queue management"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Message_queue","wgRelevantArticleId":429709,"wgIsProbablyEditable":true, "wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false,"wgFlaggedRevsParams":{"tags":{"status":{"levels":1}}},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":20000,"wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q1065525","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics": true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","jquery.makeCollapsible.styles":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","site","mediawiki.page.ready","jquery.makeCollapsible","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ReferenceTooltips","ext.gadget.switcher","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups", "ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession","wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=ext.cite.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cext.wikimediamessages.styles%7Cjquery.makeCollapsible.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&amp;only=styles&amp;skin=vector-2022"> <script async="" src="/w/load.php?lang=en&amp;modules=startup&amp;only=scripts&amp;raw=1&amp;skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=site.styles&amp;only=styles&amp;skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.4"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Message queue - Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wikipedia.org/wiki/Message_queue"> <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/w/index.php?title=Message_queue&amp;action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (en)"> <link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://en.wikipedia.org/wiki/Message_queue"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en"> <link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Special:RecentChanges&amp;feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Message_queue rootpage-Message_queue skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-contents" class="mw-list-item"><a href="/wiki/Wikipedia:Contents" title="Guides to browsing Wikipedia"><span>Contents</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:Current_events" title="Articles related to current events"><span>Current events</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Visit a randomly selected article [x]" accesskey="x"><span>Random article</span></a></li><li id="n-aboutsite" class="mw-list-item"><a href="/wiki/Wikipedia:About" title="Learn about Wikipedia and how it works"><span>About Wikipedia</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia"><span>Contact us</span></a></li> </ul> </div> </div> <div id="p-interaction" class="vector-menu mw-portlet mw-portlet-interaction" > <div class="vector-menu-heading"> Contribute </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia"><span>Help</span></a></li><li id="n-introduction" class="mw-list-item"><a href="/wiki/Help:Introduction" title="Learn how to edit Wikipedia"><span>Learn to edit</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Community_portal" title="The hub for editors"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes to Wikipedia [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_upload_wizard" title="Add images or other media for use on Wikipedia"><span>Upload file</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Main_Page" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="The Free Encyclopedia" src="/static/images/mobile/copyright/wikipedia-tagline-en.svg" width="117" height="13" style="width: 7.3125em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia" aria-label="Search Wikipedia" autocapitalize="sentences" title="Search Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page&#039;s font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&amp;utm_medium=sidebar&amp;utm_campaign=C13_en.wikipedia.org&amp;uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&amp;returnto=Message+queue" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&amp;returnto=Message+queue" title="You&#039;re encouraged to log in; however, it&#039;s not mandatory. [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Log in and more options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&amp;utm_medium=sidebar&amp;utm_campaign=C13_en.wikipedia.org&amp;uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&amp;returnto=Message+queue" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&amp;returnto=Message+queue" title="You&#039;re encouraged to log in; however, it&#039;s not mandatory. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">(Top)</div> </a> </li> <li id="toc-Remit_and_ownership" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Remit_and_ownership"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Remit and ownership</span> </div> </a> <button aria-controls="toc-Remit_and_ownership-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Remit and ownership subsection</span> </button> <ul id="toc-Remit_and_ownership-sublist" class="vector-toc-list"> <li id="toc-Remit" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Remit"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.1</span> <span>Remit</span> </div> </a> <ul id="toc-Remit-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Ownership" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Ownership"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.2</span> <span>Ownership</span> </div> </a> <ul id="toc-Ownership-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Usage" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Usage"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Usage</span> </div> </a> <ul id="toc-Usage-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Standards_and_protocols" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Standards_and_protocols"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Standards and protocols</span> </div> </a> <ul id="toc-Standards_and_protocols-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Synchronous_vs._asynchronous" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Synchronous_vs._asynchronous"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Synchronous vs. asynchronous</span> </div> </a> <ul id="toc-Synchronous_vs._asynchronous-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Implementation_in_UNIX" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Implementation_in_UNIX"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Implementation in UNIX</span> </div> </a> <button aria-controls="toc-Implementation_in_UNIX-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Implementation in UNIX subsection</span> </button> <ul id="toc-Implementation_in_UNIX-sublist" class="vector-toc-list"> <li id="toc-SYS_V" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#SYS_V"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.1</span> <span>SYS V</span> </div> </a> <ul id="toc-SYS_V-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-POSIX" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#POSIX"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.2</span> <span>POSIX</span> </div> </a> <ul id="toc-POSIX-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Graphical_user_interfaces" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Graphical_user_interfaces"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Graphical user interfaces</span> </div> </a> <ul id="toc-Graphical_user_interfaces-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-See_also" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#See_also"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>See also</span> </div> </a> <ul id="toc-See_also-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-References" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#References"> <div class="vector-toc-text"> <span class="vector-toc-numb">8</span> <span>References</span> </div> </a> <ul id="toc-References-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Message queue</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Go to an article in another language. Available in 16 languages" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-16" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">16 languages</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-ca mw-list-item"><a href="https://ca.wikipedia.org/wiki/Cua_de_missatges" title="Cua de missatges – Catalan" lang="ca" hreflang="ca" data-title="Cua de missatges" data-language-autonym="Català" data-language-local-name="Catalan" class="interlanguage-link-target"><span>Català</span></a></li><li class="interlanguage-link interwiki-da mw-list-item"><a href="https://da.wikipedia.org/wiki/MQ" title="MQ – Danish" lang="da" hreflang="da" data-title="MQ" data-language-autonym="Dansk" data-language-local-name="Danish" class="interlanguage-link-target"><span>Dansk</span></a></li><li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/Message_Queuing" title="Message Queuing – German" lang="de" hreflang="de" data-title="Message Queuing" data-language-autonym="Deutsch" data-language-local-name="German" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D8%B5%D9%81_%D9%BE%DB%8C%D8%BA%D8%A7%D9%85" title="صف پیغام – Persian" lang="fa" hreflang="fa" data-title="صف پیغام" data-language-autonym="فارسی" data-language-local-name="Persian" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/File_d%27attente_de_message" title="File d&#039;attente de message – French" lang="fr" hreflang="fr" data-title="File d&#039;attente de message" data-language-autonym="Français" data-language-local-name="French" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/%EB%A9%94%EC%8B%9C%EC%A7%80_%ED%81%90" title="메시지 큐 – Korean" lang="ko" hreflang="ko" data-title="메시지 큐" data-language-autonym="한국어" data-language-local-name="Korean" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-lv mw-list-item"><a href="https://lv.wikipedia.org/wiki/Zi%C5%86ojumu_rinda" title="Ziņojumu rinda – Latvian" lang="lv" hreflang="lv" data-title="Ziņojumu rinda" data-language-autonym="Latviešu" data-language-local-name="Latvian" class="interlanguage-link-target"><span>Latviešu</span></a></li><li class="interlanguage-link interwiki-hu mw-list-item"><a href="https://hu.wikipedia.org/wiki/%C3%9Czenetsor" title="Üzenetsor – Hungarian" lang="hu" hreflang="hu" data-title="Üzenetsor" data-language-autonym="Magyar" data-language-local-name="Hungarian" class="interlanguage-link-target"><span>Magyar</span></a></li><li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://nl.wikipedia.org/wiki/Message_queue" title="Message queue – Dutch" lang="nl" hreflang="nl" data-title="Message queue" data-language-autonym="Nederlands" data-language-local-name="Dutch" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%82%AD%E3%83%A5%E3%83%BC" title="メッセージキュー – Japanese" lang="ja" hreflang="ja" data-title="メッセージキュー" data-language-autonym="日本語" data-language-local-name="Japanese" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://pl.wikipedia.org/wiki/Kolejka_komunikat%C3%B3w" title="Kolejka komunikatów – Polish" lang="pl" hreflang="pl" data-title="Kolejka komunikatów" data-language-autonym="Polski" data-language-local-name="Polish" class="interlanguage-link-target"><span>Polski</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/Fila_de_mensagens" title="Fila de mensagens – Portuguese" lang="pt" hreflang="pt" data-title="Fila de mensagens" data-language-autonym="Português" data-language-local-name="Portuguese" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/%D0%9E%D1%87%D0%B5%D1%80%D0%B5%D0%B4%D1%8C_%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D0%B9" title="Очередь сообщений – Russian" lang="ru" hreflang="ru" data-title="Очередь сообщений" data-language-autonym="Русский" data-language-local-name="Russian" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-fi mw-list-item"><a href="https://fi.wikipedia.org/wiki/Viestijono" title="Viestijono – Finnish" lang="fi" hreflang="fi" data-title="Viestijono" data-language-autonym="Suomi" data-language-local-name="Finnish" class="interlanguage-link-target"><span>Suomi</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/%D0%A7%D0%B5%D1%80%D0%B3%D0%B0_%D0%BF%D0%BE%D0%B2%D1%96%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D1%8C" title="Черга повідомлень – Ukrainian" lang="uk" hreflang="uk" data-title="Черга повідомлень" data-language-autonym="Українська" data-language-local-name="Ukrainian" class="interlanguage-link-target"><span>Українська</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97" title="消息队列 – Chinese" lang="zh" hreflang="zh" data-title="消息队列" data-language-autonym="中文" data-language-local-name="Chinese" class="interlanguage-link-target"><span>中文</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q1065525#sitelinks-wikipedia" title="Edit interlanguage links" class="wbc-editpage">Edit links</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Message_queue" title="View the content page [c]" accesskey="c"><span>Article</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Talk:Message_queue" rel="discussion" title="Discuss improvements to the content page [t]" accesskey="t"><span>Talk</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Message_queue"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Message_queue&amp;action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Message_queue&amp;action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Message_queue"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Message_queue&amp;action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Message_queue&amp;action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/Message_queue" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/Message_queue" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q"><span>Special pages</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Message_queue&amp;oldid=1249687459" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Message_queue&amp;action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&amp;page=Message_queue&amp;id=1249687459&amp;wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&amp;url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FMessage_queue"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&amp;url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FMessage_queue"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&amp;page=Message_queue&amp;action=show-download-screen" title="Download this page as a PDF file"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Message_queue&amp;printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="wb-otherproject-link wb-otherproject-commons mw-list-item"><a href="https://commons.wikimedia.org/wiki/Category:Inter-process_communication" hreflang="en"><span>Wikimedia Commons</span></a></li><li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q1065525" title="Structured data on this page hosted by Wikidata [g]" accesskey="g"><span>Wikidata item</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">From Wikipedia, the free encyclopedia</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><div class="shortdescription nomobile noexcerpt noprint searchaux" style="display:none">Means of interprocess communication in software engineering</div> <style data-mw-deduplicate="TemplateStyles:r1236090951">.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}</style><div role="note" class="hatnote navigation-not-searchable">"Mailbox (computing)" redirects here. For the file format, see <a href="/wiki/Mbox" title="Mbox">Mbox</a>.</div> <style data-mw-deduplicate="TemplateStyles:r1251242444">.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}</style><table class="box-More_citations_needed plainlinks metadata ambox ambox-content ambox-Refimprove" role="presentation"><tbody><tr><td class="mbox-image"><div class="mbox-image-div"><span typeof="mw:File"><a href="/wiki/File:Question_book-new.svg" class="mw-file-description"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/50px-Question_book-new.svg.png" decoding="async" width="50" height="39" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/75px-Question_book-new.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/100px-Question_book-new.svg.png 2x" data-file-width="512" data-file-height="399" /></a></span></div></td><td class="mbox-text"><div class="mbox-text-span">This article <b>needs additional citations for <a href="/wiki/Wikipedia:Verifiability" title="Wikipedia:Verifiability">verification</a></b>.<span class="hide-when-compact"> Please help <a href="/wiki/Special:EditPage/Message_queue" title="Special:EditPage/Message queue">improve this article</a> by <a href="/wiki/Help:Referencing_for_beginners" title="Help:Referencing for beginners">adding citations to reliable sources</a>. Unsourced material may be challenged and removed.<br /><small><span class="plainlinks"><i>Find sources:</i>&#160;<a rel="nofollow" class="external text" href="https://www.google.com/search?as_eq=wikipedia&amp;q=%22Message+queue%22">"Message queue"</a>&#160;–&#160;<a rel="nofollow" class="external text" href="https://www.google.com/search?tbm=nws&amp;q=%22Message+queue%22+-wikipedia&amp;tbs=ar:1">news</a>&#160;<b>·</b> <a rel="nofollow" class="external text" href="https://www.google.com/search?&amp;q=%22Message+queue%22&amp;tbs=bkt:s&amp;tbm=bks">newspapers</a>&#160;<b>·</b> <a rel="nofollow" class="external text" href="https://www.google.com/search?tbs=bks:1&amp;q=%22Message+queue%22+-wikipedia">books</a>&#160;<b>·</b> <a rel="nofollow" class="external text" href="https://scholar.google.com/scholar?q=%22Message+queue%22">scholar</a>&#160;<b>·</b> <a rel="nofollow" class="external text" href="https://www.jstor.org/action/doBasicSearch?Query=%22Message+queue%22&amp;acc=on&amp;wc=on">JSTOR</a></span></small></span> <span class="date-container"><i>(<span class="date">May 2009</span>)</i></span><span class="hide-when-compact"><i> (<small><a href="/wiki/Help:Maintenance_template_removal" title="Help:Maintenance template removal">Learn how and when to remove this message</a></small>)</i></span></div></td></tr></tbody></table> <p>In <a href="/wiki/Computer_science" title="Computer science">computer science</a>, <b>message queues</b> and <b>mailboxes</b> are <a href="/wiki/Software_engineering" title="Software engineering">software-engineering</a> <a href="/wiki/Software_componentry" class="mw-redirect" title="Software componentry">components</a> typically used for <a href="/wiki/Inter-process_communication" title="Inter-process communication">inter-process communication</a> (IPC), or for inter-<a href="/wiki/Thread_(computing)" title="Thread (computing)">thread</a> communication within the same process. They use a <a href="/wiki/Queue_(data_structure)" class="mw-redirect" title="Queue (data structure)">queue</a> for <a href="/wiki/Message_(computer_science)" class="mw-redirect" title="Message (computer science)">messaging</a>&#160;– the passing of control or of content. <a href="/wiki/Group_communication_system" title="Group communication system">Group communication systems</a> provide similar kinds of functionality. </p><p>The message queue paradigm is a sibling of the <a href="/wiki/Publish%E2%80%93subscribe_pattern" title="Publish–subscribe pattern">publisher/subscriber</a> pattern, and is typically one part of a larger <a href="/wiki/Message-oriented_middleware" title="Message-oriented middleware">message-oriented middleware</a> system. Most messaging systems support both the publisher/subscriber and message queue models in their <a href="/wiki/Application_programming_interface" class="mw-redirect" title="Application programming interface">API</a>, e.g. <a href="/wiki/Java_Message_Service" class="mw-redirect" title="Java Message Service">Java Message Service</a> (JMS). </p><p>Competing Consumers pattern enables multiple concurrent consumers to process messages on the same message queue. <sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">&#91;</span>1<span class="cite-bracket">&#93;</span></a></sup> </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="Remit_and_ownership">Remit and ownership</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Message_queue&amp;action=edit&amp;section=1" title="Edit section: Remit and ownership"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Message queues implement an <a href="/wiki/Asynchronous_method_invocation" title="Asynchronous method invocation">asynchronous communication pattern</a> between two or more processes/threads whereby the sending and receiving party do not need to interact with the message queue at the same time. Messages placed onto the queue are stored until the recipient retrieves them. Message queues have implicit or explicit limits on the size of data that may be transmitted in a single message and the number of messages that may remain outstanding on the queue.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">&#91;</span>2<span class="cite-bracket">&#93;</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Remit">Remit</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Message_queue&amp;action=edit&amp;section=2" title="Edit section: Remit"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Many implementations of message queues function internally within an <a href="/wiki/Operating_system" title="Operating system">operating system</a> or within an <a href="/wiki/Application_software" title="Application software">application</a>. Such queues exist for the purposes of that <a href="/wiki/System" title="System">system</a> only.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">&#91;</span>3<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">&#91;</span>4<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">&#91;</span>5<span class="cite-bracket">&#93;</span></a></sup> </p><p>Other implementations allow the passing of messages between different computer systems, potentially connecting multiple applications and multiple operating systems.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">&#91;</span>6<span class="cite-bracket">&#93;</span></a></sup> These message queuing systems typically provide <a href="/wiki/Resilience_(network)" class="mw-redirect" title="Resilience (network)">resilience</a> functionality to ensure that messages do not get "lost" in the event of a system failure. Examples of commercial implementations of this kind of message queuing <a href="/wiki/Software" title="Software">software</a> (also known as <a href="/wiki/Message-oriented_middleware" title="Message-oriented middleware">message-oriented middleware</a>) include <a href="/wiki/IBM_MQ" title="IBM MQ">IBM MQ</a> (formerly MQ Series) and <a href="/wiki/Oracle_Advanced_Queuing" title="Oracle Advanced Queuing">Oracle Advanced Queuing</a> (AQ). There is a <a href="/wiki/Java_(programming_language)" title="Java (programming language)">Java</a> standard called <a href="/wiki/Java_Message_Service" class="mw-redirect" title="Java Message Service">Java Message Service</a>, which has several <a href="/wiki/Proprietary_software" title="Proprietary software">proprietary</a> and <a href="/wiki/Free_software" title="Free software">free software</a> implementations. </p><p><a href="/wiki/Real-time_operating_system" title="Real-time operating system">Real-time operating systems</a> (RTOSes) such as <a href="/wiki/VxWorks" title="VxWorks">VxWorks</a> and <a href="/wiki/QNX" title="QNX">QNX</a> encourage the use of message queuing as the primary inter-process or inter-thread communication mechanism. This can result in integration between message passing and CPU scheduling. Early examples of commercial RTOSes that encouraged a message-queue basis to inter-thread communication also include <a href="/wiki/Versatile_Real-Time_Executive" title="Versatile Real-Time Executive">VRTX</a> and <a href="/wiki/PSOS_(real-time_operating_system)" title="PSOS (real-time operating system)">pSOS</a>+, both of which date to the early 1980s. The <a href="/wiki/Erlang_(programming_language)" title="Erlang (programming language)">Erlang programming language</a> uses <i>processes</i> to provide concurrency; these processes communicate asynchronously using message queuing. </p> <div class="mw-heading mw-heading3"><h3 id="Ownership">Ownership</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Message_queue&amp;action=edit&amp;section=3" title="Edit section: Ownership"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The message queue software can be either proprietary, open source or a mix of both. It is then run either on premise in private servers or on external cloud servers (<a href="/wiki/Message_queuing_service" title="Message queuing service">message queuing service</a>). </p> <ul><li>Proprietary options have the longest history, and include products from the inception of message queuing, such as <a href="/wiki/IBM_MQ" title="IBM MQ">IBM MQ</a>, and those tied to specific operating systems, such as <a href="/wiki/Microsoft_Message_Queuing" title="Microsoft Message Queuing">Microsoft Message Queuing (MSMQ)</a>. Cloud service providers also provide their proprietary solutions such as <a href="/wiki/Amazon_Simple_Queue_Service" title="Amazon Simple Queue Service">Amazon Simple Queue Service</a> (SQS), StormMQ, <a href="/wiki/Solace_Corporation" title="Solace Corporation">Solace</a>, and <a href="/wiki/IBM_MQ" title="IBM MQ">IBM MQ</a>.</li> <li>Open source choices of messaging <a href="/wiki/Middleware" title="Middleware">middleware</a> systems includes <a href="/wiki/Apache_ActiveMQ" title="Apache ActiveMQ">Apache ActiveMQ</a>, <a href="/wiki/Apache_Kafka" title="Apache Kafka">Apache Kafka</a>, <a href="/wiki/Apache_Qpid" title="Apache Qpid">Apache Qpid</a>, <a href="/wiki/Apache_RocketMQ" title="Apache RocketMQ">Apache RocketMQ</a>, <a href="/wiki/Enduro/X" title="Enduro/X">Enduro/X</a>, <a href="/wiki/JBoss_Messaging" title="JBoss Messaging">JBoss Messaging</a>, <a href="/w/index.php?title=JORAM&amp;action=edit&amp;redlink=1" class="new" title="JORAM (page does not exist)">JORAM</a>, <a href="/wiki/RabbitMQ" title="RabbitMQ">RabbitMQ</a>, <a href="/wiki/Open_Message_Queue" title="Open Message Queue">Sun Open Message Queue</a>, and <a href="/wiki/Tarantool" title="Tarantool">Tarantool</a>.</li></ul> <p>Examples on hardware-based <a href="/wiki/Message_oriented_middleware" class="mw-redirect" title="Message oriented middleware">messaging middleware</a> vendors are <a href="/wiki/Solace_Corporation" title="Solace Corporation">Solace</a>, <a href="/wiki/Apigee" title="Apigee">Apigee</a>, and <a href="/wiki/IBM_MQ" title="IBM MQ">IBM MQ</a>. </p> <div class="mw-heading mw-heading2"><h2 id="Usage">Usage</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Message_queue&amp;action=edit&amp;section=4" title="Edit section: Usage"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>In a typical message-queueing implementation, a <a href="/wiki/System_administrator" title="System administrator">system administrator</a> installs and configures message-queueing software (a <a href="/wiki/Queue_manager" class="mw-redirect" title="Queue manager">queue manager</a> or broker), and defines a named message queue. Or they register with a <a href="/wiki/Message_queuing_service" title="Message queuing service">message queuing service</a>. </p><p>An application then registers a software routine that "listens" for messages placed onto the queue. </p><p>Second and subsequent applications may connect to the queue and transfer a message onto it. </p><p>The queue-manager software stores the messages until a receiving application connects and then calls the registered software routine. The receiving application then processes the message in an appropriate manner. </p><p>There are often numerous options as to the exact semantics of message passing, including: </p> <ul><li>Durability – messages may be kept in memory, written to disk, or even committed to a <a href="/wiki/Database" title="Database">DBMS</a> if the need for reliability indicates a more resource-intensive solution.</li> <li>Security policies – which applications should have access to these messages?</li> <li>Message purging policies – queues or messages may have a "<a href="/wiki/Time_to_live" title="Time to live">time to live</a>".</li> <li>Message filtering – some systems support filtering data so that a subscriber may only see messages matching some pre-specified criteria of interest.</li> <li>Delivery policies – do we need to guarantee that a message is delivered at least once, or no more than once?</li> <li>Routing policies – in a system with many queue servers, what servers should receive a message or a queue's messages?</li> <li>Batching policies – should messages be delivered immediately? Or should the system wait a bit and try to deliver many messages at once?</li> <li>Queuing criteria – when should a message be considered "enqueued"? When one queue has it? Or when it has been forwarded to at least one remote queue? Or to all queues?</li> <li>Receipt notification – A publisher may need to know when some or all subscribers have received a message.</li></ul> <p>These are all considerations that can have substantial effects on transaction semantics, system reliability, and system efficiency. </p> <div class="mw-heading mw-heading2"><h2 id="Standards_and_protocols">Standards and protocols</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Message_queue&amp;action=edit&amp;section=5" title="Edit section: Standards and protocols"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Historically, message queuing has used proprietary, closed protocols, restricting the ability for different operating systems or programming languages to interact in a heterogeneous set of environments. </p><p>An early attempt to make message queuing more ubiquitous was <a href="/wiki/Sun_Microsystems" title="Sun Microsystems">Sun Microsystems</a>' <a href="/wiki/Java_Message_Service" class="mw-redirect" title="Java Message Service">JMS</a> specification, which provided a <a href="/wiki/Java_(software_platform)" title="Java (software platform)">Java</a>-only abstraction of a client <a href="/wiki/Application_programming_interface" class="mw-redirect" title="Application programming interface">API</a>. This allowed Java developers to switch between providers of message queuing in a fashion similar to that of developers using <a href="/wiki/SQL" title="SQL">SQL</a> databases. In practice, given the diversity of message queuing techniques and scenarios, this wasn't always as practical as it could be. </p><p>Three standards have emerged which are used in open source message queue implementations: </p> <ol><li><a href="/wiki/Advanced_Message_Queuing_Protocol" title="Advanced Message Queuing Protocol">Advanced Message Queuing Protocol</a> (AMQP) – feature-rich message queue protocol, approved as ISO/IEC 19464 since April 2014</li> <li><a href="/wiki/Streaming_Text_Oriented_Messaging_Protocol" title="Streaming Text Oriented Messaging Protocol">Streaming Text Oriented Messaging Protocol</a> (STOMP) – simple, text-oriented message protocol</li> <li><a href="/wiki/MQTT" title="MQTT">MQTT</a> (formerly MQ Telemetry Transport) – lightweight message queue protocol especially for embedded devices</li></ol> <p>These protocols are at different stages of standardization and adoption. The first two operate at the same level as <a href="/wiki/HTTP" title="HTTP">HTTP</a>, MQTT at the level of <a href="/wiki/TCP/IP" class="mw-redirect" title="TCP/IP">TCP/IP</a>. </p><p>Some proprietary implementations also use HTTP to provide message queuing by some implementations, such as <a href="/wiki/Amazon.com" class="mw-redirect" title="Amazon.com">Amazon</a>'s <a href="/wiki/Amazon_Simple_Queue_Service" title="Amazon Simple Queue Service">SQS</a>. This is because it is always possible to layer asynchronous behaviour (which is what is required for message queuing) over a synchronous protocol using request-response semantics. However, such implementations are constrained by the underlying protocol in this case and may not be able to offer the full fidelity or set of options required in message passing above. </p> <div class="mw-heading mw-heading2"><h2 id="Synchronous_vs._asynchronous">Synchronous vs. asynchronous</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Message_queue&amp;action=edit&amp;section=6" title="Edit section: Synchronous vs. asynchronous"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Many of the more widely known <a href="/wiki/Communications_protocol" class="mw-redirect" title="Communications protocol">communications protocols</a> in use operate <a href="/wiki/Synchronization_(computer_science)" title="Synchronization (computer science)">synchronously</a>. The HTTP protocol&#160;– used in the <a href="/wiki/World_Wide_Web" title="World Wide Web">World Wide Web</a> and in <a href="/wiki/Web_service" title="Web service">web services</a>&#160;– offers an obvious example where a user sends a request for a web page and then waits for a reply. </p><p>However, scenarios exist in which synchronous behaviour is not appropriate. For example, <a href="/wiki/AJAX" class="mw-redirect" title="AJAX">AJAX</a> (<a href="https://en.wiktionary.org/wiki/asynchronous" class="extiw" title="wikt:asynchronous">Asynchronous</a> <a href="/wiki/JavaScript" title="JavaScript">JavaScript</a> and <a href="/wiki/XML" title="XML">XML</a>) can be used to asynchronously send text, JSON or XML messages to update part of a web page with more relevant information. <a href="/wiki/Google" title="Google">Google</a> uses this approach for their Google Suggest, a search feature which sends the user's partially typed queries to Google's servers and returns a list of possible full queries the user might be interested in the process of typing. This list is asynchronously updated as the user types. </p><p>Other asynchronous examples exist in event notification systems and <a href="/wiki/Publish%E2%80%93subscribe_pattern" title="Publish–subscribe pattern">publish/subscribe</a> systems. </p> <ul><li>An application may need to notify another that an event has occurred, but does not need to wait for a response.</li> <li>In publish/subscribe systems, an application "publishes" information for any number of clients to read.</li></ul> <p>In both of the above examples it would not make sense for the sender of the information to have to wait if, for example, one of the recipients had crashed. </p><p>Applications need not be exclusively synchronous or asynchronous. An interactive application may need to respond to certain parts of a request immediately (such as telling a customer that a sales request has been accepted, and handling the promise to draw on inventory), but may queue other parts (such as completing calculation of billing, forwarding data to the central accounting system, and calling on all sorts of other services) to be done some time later. </p><p>In all these sorts of situations, having a subsystem which performs message-queuing (or alternatively, a broadcast messaging system) can help improve the behavior of the overall system. </p> <div class="mw-heading mw-heading2"><h2 id="Implementation_in_UNIX">Implementation in UNIX</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Message_queue&amp;action=edit&amp;section=7" title="Edit section: Implementation in UNIX"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>There are two common message queue implementations in <a href="/wiki/Unix" title="Unix">UNIX</a>. One is part of the SYS V API, the other one is part of <a href="/wiki/POSIX" title="POSIX">POSIX</a>. </p> <div class="mw-heading mw-heading3"><h3 id="SYS_V">SYS V</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Message_queue&amp;action=edit&amp;section=8" title="Edit section: SYS V"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>UNIX SYS V implements message passing by keeping an array of linked lists as message queues. Each message queue is identified by its index in the array, and has a unique descriptor. A given index can have multiple possible descriptors. UNIX gives standard functions to access the message passing feature.<sup id="cite_ref-The_Design_of_the_UNIX_Operating_System_7-0" class="reference"><a href="#cite_note-The_Design_of_the_UNIX_Operating_System-7"><span class="cite-bracket">&#91;</span>7<span class="cite-bracket">&#93;</span></a></sup> </p> <dl><dt><code>msgget()</code></dt> <dd>This system call takes a key as an argument and returns a descriptor of the queue with the matching key if it exists. If it does not exist, and the <code>IPC_CREAT</code> flag is set, it makes a new message queue with the given key and returns its descriptor.</dd> <dt><code>msgrcv()</code></dt> <dd>Used to receive a message from a given queue descriptor. The caller process must have read permissions for the queue. It is of two types.<sup id="cite_ref-Operating_Systems_Concepts_8-0" class="reference"><a href="#cite_note-Operating_Systems_Concepts-8"><span class="cite-bracket">&#91;</span>8<span class="cite-bracket">&#93;</span></a></sup> <ul><li>Blocking receive puts the child to sleep if it cannot find a requested message type. It sleeps until another message is posted in the queue, and then wakes up to check again.</li> <li>Non-blocking receive returns immediately to the caller, mentioning that it failed.</li></ul></dd></dl> <dl><dt><code>msgctl()</code></dt> <dd>Used to change message queue parameters like the owner. Most importantly, it is used to delete the message queue by passing the <code>IPC_RMID</code> flag. A message queue can be deleted only by its creator, owner, or the superuser.</dd></dl> <div class="mw-heading mw-heading3"><h3 id="POSIX">POSIX</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Message_queue&amp;action=edit&amp;section=9" title="Edit section: POSIX"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The POSIX.1-2001 message queue API is the later of the two UNIX message queue APIs. It is distinct from the SYS V API, but provides similar function. The unix man page <code>mq_overview(7)</code> provides an overview of POSIX message queues. </p> <div class="mw-heading mw-heading2"><h2 id="Graphical_user_interfaces">Graphical user interfaces</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Message_queue&amp;action=edit&amp;section=10" title="Edit section: Graphical user interfaces"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/Graphical_user_interface" title="Graphical user interface">Graphical user interfaces</a> (GUIs) employ a message queue, also called an <i>event queue</i> or <i>input queue</i>, to pass <a href="/wiki/Event_(computing)" title="Event (computing)">graphical input actions</a>, such as <a href="/wiki/Mouse_click" class="mw-redirect" title="Mouse click">mouse clicks</a>, keyboard events, or other user inputs, to the <a href="/wiki/Application_program" class="mw-redirect" title="Application program">application program</a>.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">&#91;</span>9<span class="cite-bracket">&#93;</span></a></sup> The windowing system places messages indicating user or other events, such as timer ticks or messages sent by other threads, into the message queue. The GUI application removes these events one at a time by calling a routine called <code>getNextEvent()</code> or similar in an <a href="/wiki/Event_loop" title="Event loop">event loop</a>, and then calling the appropriate application routine to process that event.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">&#91;</span>10<span class="cite-bracket">&#93;</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Message_queue&amp;action=edit&amp;section=11" title="Edit section: See also"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1184024115">.mw-parser-output .div-col{margin-top:0.3em;column-width:30em}.mw-parser-output .div-col-small{font-size:90%}.mw-parser-output .div-col-rules{column-rule:1px solid #aaa}.mw-parser-output .div-col dl,.mw-parser-output .div-col ol,.mw-parser-output .div-col ul{margin-top:0}.mw-parser-output .div-col li,.mw-parser-output .div-col dd{page-break-inside:avoid;break-inside:avoid-column}</style><div class="div-col"> <ul><li><a href="/wiki/Advanced_Message_Queuing_Protocol" title="Advanced Message Queuing Protocol">Advanced Message Queuing Protocol</a> (AMQP)</li> <li><a href="/wiki/Amazon_Simple_Queue_Service" title="Amazon Simple Queue Service">Amazon Simple Queue Service</a></li> <li><a href="/wiki/Apache_ActiveMQ" title="Apache ActiveMQ">Apache ActiveMQ</a></li> <li><a href="/wiki/Apache_Qpid" title="Apache Qpid">Apache Qpid</a></li> <li><a href="/wiki/Celery_(software)" title="Celery (software)">Celery (software)</a></li> <li><a href="/wiki/Gearman" title="Gearman">Gearman</a></li> <li><a href="/wiki/IBM_Integration_Bus" class="mw-redirect" title="IBM Integration Bus">IBM Integration Bus</a></li> <li><a href="/wiki/IBM_MQ" title="IBM MQ">IBM MQ</a></li> <li><a href="/wiki/Java_Message_Service" class="mw-redirect" title="Java Message Service">Java Message Service</a></li> <li><a href="/wiki/MQTT" title="MQTT">MQTT</a></li> <li><a href="/wiki/Message-oriented_middleware" title="Message-oriented middleware">Message-oriented middleware</a>, <a href="/wiki/Category:Message-oriented_middleware" title="Category:Message-oriented middleware">(category)</a></li> <li><a href="/wiki/Microsoft_Message_Queuing" title="Microsoft Message Queuing">Microsoft Message Queuing</a> (known colloquially as MSMQ)</li> <li><a href="/wiki/NATS_Messaging" title="NATS Messaging">NATS</a></li> <li><a href="/wiki/Oracle_Cloud" title="Oracle Cloud">Oracle Messaging Cloud Service</a></li> <li><a href="/wiki/RabbitMQ" title="RabbitMQ">RabbitMQ</a></li> <li><a href="/wiki/Redis" title="Redis">Redis</a></li> <li><a href="/wiki/TIBCO" class="mw-redirect" title="TIBCO">TIBCO</a> Enterprise Message Service</li> <li><a href="/wiki/Enduro/X" title="Enduro/X">Enduro/X</a> Middleware platform</li> <li><a href="/wiki/ZeroMQ" title="ZeroMQ">ZeroMQ</a></li></ul> </div> <div class="mw-heading mw-heading2"><h2 id="References">References</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Message_queue&amp;action=edit&amp;section=12" title="Edit section: References"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239543626">.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}</style><div class="reflist"> <div class="mw-references-wrap"><ol class="references"> <li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}</style><cite id="CITEREFGorton" class="citation book cs1">Gorton, Ian. <i>Foundations of Scalable Systems</i>. O'Reilly Media. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/9781098106034" title="Special:BookSources/9781098106034"><bdi>9781098106034</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Foundations+of+Scalable+Systems&amp;rft.pub=O%27Reilly+Media&amp;rft.isbn=9781098106034&amp;rft.aulast=Gorton&amp;rft.aufirst=Ian&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMessage+queue" class="Z3988"></span></span> </li> <li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text">Dive Into Queue Module In Python. <a rel="nofollow" class="external text" href="http://linux.die.net/man/7/mq_overview">Overview of POSIX message queues</a> </span> </li> <li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text">Win32 system message queues. <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20120317065349/http://msdn.microsoft.com/en-us/library/ms644927(VS.85).aspx">"About Messages and Message Queues"</a>. <i>Windows User Interface</i>. Microsoft Developer Network. Archived from <a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/library/ms644927(VS.85).aspx">the original</a> on March 17, 2012<span class="reference-accessdate">. Retrieved <span class="nowrap">April 21,</span> 2010</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Windows+User+Interface&amp;rft.atitle=About+Messages+and+Message+Queues&amp;rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fms644927%28VS.85%29.aspx&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMessage+queue" class="Z3988"></span></span> </li> <li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text">Linux and POSIX message queues. <a rel="nofollow" class="external text" href="http://linux.die.net/man/7/mq_overview">Overview of POSIX message queues</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20120504002336/http://linux.die.net/man/7/mq_overview">Archived</a> 2012-05-04 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a> at linux.die.net</span> </li> <li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text">Using Linux Message Queues. <a rel="nofollow" class="external text" href="http://www.civilized.com/files/msgfuncs.txt">Linux message queue functions</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20120408091327/http://www.civilized.com/files/msgfuncs.txt">Archived</a> 2012-04-08 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a> at www.civilized.com</span> </li> <li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text">For example, the MSMQ product. <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/library/ms711472.aspx">"Message Queuing (MSMQ)"</a>. <i>Network Communication</i>. Microsoft Developer Network<span class="reference-accessdate">. Retrieved <span class="nowrap">May 9,</span> 2009</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Network+Communication&amp;rft.atitle=Message+Queuing+%28MSMQ%29&amp;rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Flibrary%2Fms711472.aspx&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMessage+queue" class="Z3988"></span></span> </li> <li id="cite_note-The_Design_of_the_UNIX_Operating_System-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-The_Design_of_the_UNIX_Operating_System_7-0">^</a></b></span> <span class="reference-text"> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBach,_M.J.1986" class="citation book cs1">Bach, M.J. (1986). <span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://archive.org/details/designofunixoper00bach"><i>The Design of the UNIX Operating System</i></a></span>. Prentice-Hall. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/9780132017992" title="Special:BookSources/9780132017992"><bdi>9780132017992</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=The+Design+of+the+UNIX+Operating+System&amp;rft.pub=Prentice-Hall&amp;rft.date=1986&amp;rft.isbn=9780132017992&amp;rft.au=Bach%2C+M.J.&amp;rft_id=https%3A%2F%2Farchive.org%2Fdetails%2Fdesignofunixoper00bach&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMessage+queue" class="Z3988"></span></span> </li> <li id="cite_note-Operating_Systems_Concepts-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-Operating_Systems_Concepts_8-0">^</a></b></span> <span class="reference-text"> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFAbraham_Silberschatz,_Peter_B._Galvin1994" class="citation book cs1">Abraham Silberschatz, Peter B. Galvin (1994). <i>Operating Systems Concepts</i>. Addison-Wesley. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/9780201504804" title="Special:BookSources/9780201504804"><bdi>9780201504804</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Operating+Systems+Concepts&amp;rft.pub=Addison-Wesley&amp;rft.date=1994&amp;rft.isbn=9780201504804&amp;rft.au=Abraham+Silberschatz%2C+Peter+B.+Galvin&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMessage+queue" class="Z3988"></span></span> </li> <li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFCartwright" class="citation web cs1">Cartwright, Corky. <a rel="nofollow" class="external text" href="https://www.cs.rice.edu/~cork/newBook/node89.html">"GUI Programming"</a>. <i>Rice University:Robert (Corky) Cartwright</i><span class="reference-accessdate">. Retrieved <span class="nowrap">June 27,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Rice+University%3ARobert+%28Corky%29+Cartwright&amp;rft.atitle=GUI+Programming&amp;rft.aulast=Cartwright&amp;rft.aufirst=Corky&amp;rft_id=https%3A%2F%2Fwww.cs.rice.edu%2F~cork%2FnewBook%2Fnode89.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMessage+queue" class="Z3988"></span></span> </li> <li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFNystrom2014" class="citation book cs1">Nystrom, Robert (2014). <a rel="nofollow" class="external text" href="https://gameprogrammingpatterns.com/event-queue.html"><i>Game Programming Patterns</i></a>. Genever Benning. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/978-0990582908" title="Special:BookSources/978-0990582908"><bdi>978-0990582908</bdi></a><span class="reference-accessdate">. Retrieved <span class="nowrap">June 27,</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Game+Programming+Patterns&amp;rft.pub=Genever+Benning&amp;rft.date=2014&amp;rft.isbn=978-0990582908&amp;rft.aulast=Nystrom&amp;rft.aufirst=Robert&amp;rft_id=https%3A%2F%2Fgameprogrammingpatterns.com%2Fevent-queue.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AMessage+queue" class="Z3988"></span></span> </li> </ol></div></div> <div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}</style><style data-mw-deduplicate="TemplateStyles:r1236075235">.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}</style></div><div role="navigation" class="navbox" aria-labelledby="Inter-process_communication" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><style data-mw-deduplicate="TemplateStyles:r1239400231">.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}</style><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Inter-process_communication" title="Template:Inter-process communication"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Inter-process_communication" title="Template talk:Inter-process communication"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Inter-process_communication" title="Special:EditPage/Template:Inter-process communication"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Inter-process_communication" style="font-size:114%;margin:0 4em"><a href="/wiki/Inter-process_communication" title="Inter-process communication">Inter-process communication</a></div></th></tr><tr><td class="navbox-abovebelow" colspan="2"><div><a href="/wiki/Data" title="Data">Data</a> exchange among <a href="/wiki/Thread_(computing)" title="Thread (computing)">threads</a> in <a href="/wiki/Computer_program" title="Computer program">computer programs</a></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Methods</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Computer_file" title="Computer file">File</a></li> <li><a href="/wiki/Mmap" title="Mmap">Memory-mapped file</a></li> <li><a href="/wiki/Message_passing" title="Message passing">Message passing</a></li> <li><a class="mw-selflink selflink">Message queue and mailbox</a></li> <li><a href="/wiki/Named_pipe" title="Named pipe">Named pipe</a></li> <li><a href="/wiki/Anonymous_pipe" title="Anonymous pipe">Anonymous pipe</a></li> <li><a href="/wiki/Pipeline_(Unix)" title="Pipeline (Unix)">Pipe</a></li> <li><a href="/wiki/Semaphore_(programming)" title="Semaphore (programming)">Semaphore</a></li> <li><a href="/wiki/Shared_memory" title="Shared memory">Shared memory</a></li> <li><a href="/wiki/Signal_(IPC)" title="Signal (IPC)">Signal</a></li> <li>Sockets <ul><li><a href="/wiki/Network_socket" title="Network socket">Network</a></li> <li><a href="/wiki/Unix_domain_socket" title="Unix domain socket">Unix</a></li></ul></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Communication_protocol" title="Communication protocol">Protocols</a><br />and <a href="/wiki/Technical_standard" title="Technical standard">standards</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Apple_event" title="Apple event">Apple events</a></li> <li><a href="/wiki/Component_Object_Model#COM.2B" title="Component Object Model">COM+</a></li> <li><a href="/wiki/Common_Object_Request_Broker_Architecture" title="Common Object Request Broker Architecture">CORBA</a></li> <li><a href="/wiki/D-Bus" title="D-Bus">D-Bus</a></li> <li><a href="/wiki/Data_Distribution_Service" title="Data Distribution Service">DDS</a></li> <li><a href="/wiki/Distributed_Computing_Environment" title="Distributed Computing Environment">DCE</a></li> <li><a href="/wiki/Internet_Communications_Engine" title="Internet Communications Engine">ICE</a></li> <li><a href="/wiki/OpenBinder" title="OpenBinder">OpenBinder</a></li> <li><a href="/wiki/Sun_RPC" title="Sun RPC">Sun RPC</a></li> <li><a href="/wiki/POSIX" title="POSIX">POSIX</a> (various methods)</li> <li><a href="/wiki/SOAP" title="SOAP">SOAP</a></li> <li><a href="/wiki/REST" title="REST">REST</a></li> <li><a href="/wiki/Apache_Thrift" title="Apache Thrift">Thrift</a></li> <li><a href="/wiki/Transparent_Inter-process_Communication" title="Transparent Inter-process Communication">TIPC</a></li> <li><a href="/wiki/XML-RPC" title="XML-RPC">XML-RPC</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Library_(computing)" title="Library (computing)">Software libraries</a><br />and <a href="/wiki/Software_framework" title="Software framework">frameworks</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/D-Bus" title="D-Bus">D-Bus</a></li> <li><a href="/wiki/Libevent" title="Libevent">libevent</a></li> <li><a href="/wiki/SIMPL" title="SIMPL">SIMPL</a></li> <li><a href="/wiki/LINX_(IPC)" class="mw-redirect" title="LINX (IPC)">LINX</a></li></ul> </div></td></tr></tbody></table></div> <!-- NewPP limit report Parsed by mw‐web.codfw.main‐f69cdc8f6‐djcsx Cached time: 20241122141249 Cache expiry: 2592000 Reduced expiry: false Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 0.407 seconds Real time usage: 0.560 seconds Preprocessor visited node count: 883/1000000 Post‐expand include size: 29988/2097152 bytes Template argument size: 769/2097152 bytes Highest expansion depth: 9/100 Expensive parser function count: 4/500 Unstrip recursion depth: 1/20 Unstrip post‐expand size: 36955/5000000 bytes Lua time usage: 0.273/10.000 seconds Lua memory usage: 5876334/52428800 bytes Number of Wikibase entities loaded: 0/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 498.547 1 -total 30.62% 152.668 1 Template:Reflist 21.98% 109.567 1 Template:Short_description 21.30% 106.191 4 Template:Cite_book 20.80% 103.706 1 Template:Inter-process_communication 19.89% 99.183 1 Template:Navbox 14.83% 73.910 1 Template:Refimprove 13.40% 66.805 1 Template:Ambox 10.03% 49.995 2 Template:Pagetype 9.17% 45.719 4 Template:Main_other --> <!-- Saved in parser cache with key enwiki:pcache:429709:|#|:idhash:canonical and timestamp 20241122141249 and revision id 1249687459. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=Message_queue&amp;oldid=1249687459">https://en.wikipedia.org/w/index.php?title=Message_queue&amp;oldid=1249687459</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Help:Category" title="Help:Category">Categories</a>: <ul><li><a href="/wiki/Category:Inter-process_communication" title="Category:Inter-process communication">Inter-process communication</a></li><li><a href="/wiki/Category:Events_(computing)" title="Category:Events (computing)">Events (computing)</a></li><li><a href="/wiki/Category:Queue_management" title="Category:Queue management">Queue management</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden categories: <ul><li><a href="/wiki/Category:Webarchive_template_wayback_links" title="Category:Webarchive template wayback links">Webarchive template wayback links</a></li><li><a href="/wiki/Category:Articles_with_short_description" title="Category:Articles with short description">Articles with short description</a></li><li><a href="/wiki/Category:Short_description_matches_Wikidata" title="Category:Short description matches Wikidata">Short description matches Wikidata</a></li><li><a href="/wiki/Category:Articles_needing_additional_references_from_May_2009" title="Category:Articles needing additional references from May 2009">Articles needing additional references from May 2009</a></li><li><a href="/wiki/Category:All_articles_needing_additional_references" title="Category:All articles needing additional references">All articles needing additional references</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 6 October 2024, at 08:44<span class="anonymous-show">&#160;(UTC)</span>.</li> <li id="footer-info-copyright">Text is available under the <a href="/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License" title="Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License">Creative Commons Attribution-ShareAlike 4.0 License</a>; additional terms may apply. By using this site, you agree to the <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use" class="extiw" title="foundation:Special:MyLanguage/Policy:Terms of Use">Terms of Use</a> and <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy" class="extiw" title="foundation:Special:MyLanguage/Policy:Privacy policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:About">About Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:General_disclaimer">Disclaimers</a></li> <li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/en.wikipedia.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=Message_queue&amp;mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-f69cdc8f6-bmh6q","wgBackendResponseTime":116,"wgPageParseReport":{"limitreport":{"cputime":"0.407","walltime":"0.560","ppvisitednodes":{"value":883,"limit":1000000},"postexpandincludesize":{"value":29988,"limit":2097152},"templateargumentsize":{"value":769,"limit":2097152},"expansiondepth":{"value":9,"limit":100},"expensivefunctioncount":{"value":4,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":36955,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 498.547 1 -total"," 30.62% 152.668 1 Template:Reflist"," 21.98% 109.567 1 Template:Short_description"," 21.30% 106.191 4 Template:Cite_book"," 20.80% 103.706 1 Template:Inter-process_communication"," 19.89% 99.183 1 Template:Navbox"," 14.83% 73.910 1 Template:Refimprove"," 13.40% 66.805 1 Template:Ambox"," 10.03% 49.995 2 Template:Pagetype"," 9.17% 45.719 4 Template:Main_other"]},"scribunto":{"limitreport-timeusage":{"value":"0.273","limit":"10.000"},"limitreport-memusage":{"value":5876334,"limit":52428800}},"cachereport":{"origin":"mw-web.codfw.main-f69cdc8f6-djcsx","timestamp":"20241122141249","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Message queue","url":"https:\/\/en.wikipedia.org\/wiki\/Message_queue","sameAs":"http:\/\/www.wikidata.org\/entity\/Q1065525","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q1065525","author":{"@type":"Organization","name":"Contributors to Wikimedia projects"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2004-01-13T18:56:12Z","dateModified":"2024-10-06T08:44:46Z","headline":"means of interprocess communication in software engineering"}</script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10