1, synchronous/asynchronous, they are the notification mechanism of the message. Synchronization is when the caller invokes a service, and the service returns the result to the caller only after the service has finished processing. Asynchronous is the caller calls a service, the caller does not immediately get the result, the service will be processed, through the state, notification or callback function to
Notifies the caller.
2, blocking/non-blocking, they are the state of the program while waiting for the message. A blocking call means that the current thread is suspended until the call results are returned. The concept of non-blocking and blocking corresponds to a function that does not block the current thread and returns immediately until the result is not immediately available.
Synchronous asynchronous vs. blocking non-blocking