Message passing: Synchronous versus asynchronous.
25 September 1987
Message passing primitives used for interprocess communication can be classified into two categories: Asynchronous and synchronous. Most concurrent programming languages support either synchronous or asynchronous message passing facilities, but not both. Although these two kinds of message passing facilities are equivalent in that one can be implemented in terms of the other, programmers seem to have a strong preference for one or the other. Concurrent C is a parallel superset of C that initially provided only synchronous message passing facilities. Some users and some potential users of Concurrent C indicated a strong preference for asynchronous message passing facilities. In response to this feedback, we eventually extended Concurrent C with asynchronous message passing.