Synchronization
In communication among processes messages passed may be blocking or nonblocking - also called as synchronous and asynchronous.
Blocking send : The sending process is blocked unless the message is received.
Nonblocking send: The sending process sends the message and resumes operation.
Blocking receive: The receiver blocks unless a message is available.
Nonblocking receive: The receiver retrieves either a suitable message or a null.