In computing, inter-process communication (IPC) is a set of methods for the exchange of data among multiple threads in one or more processes. Processes may be running on one or more computers connected by a network. IPC methods are divided into methods for message passing, synchronization, shared memory, and remote procedure calls (RPC). The method of IPC used may vary based on the bandwidth and latency of communication between the threads, and the type of data being communicated.
There are several reasons for providing an environment that allows process cooperation:
IPC may also be referred to as inter-thread communication and inter-application communication.
|Method||Provided by (operating systems or other environments)|
|File||Most operating systems|
|Signal||Most operating systems; some systems, such as Windows, implement signals in only
the C run-time library and provide no support for their use as an IPC method
|Socket||Most operating systems|
|Message queue||Most operating systems|
|Pipe||All POSIX systems, Windows|
|Named pipe||All POSIX systems, Windows|
|Semaphore||All POSIX systems, Windows|
|Shared memory||All POSIX systems, Windows|
|Used in MPI paradigm, Java RMI, CORBA, DDS, MSMQ, MailSlots, QNX, others|
|Memory-mapped file||All POSIX systems, Windows|
|This section does not cite any references or sources. (May 2013)|
There are several APIs which may be used for IPC. A number of platform independent APIs include the following:
The following are platform or programming language specific APIs:
Here you can share your comments or contribute with more information, content, resources or links about this topic.