I was trying to understand the terms Synchronous and Asynchronous communication but i am getting confused a bit. I tried to dig a bit into this but there are still confusions.
synchronous your code sends a message, calls a function etc. and is blocked until an answer, a return value etc. arrives.
asynchronous your code continues executing after sending a message/calling a function, you usually pass a reference to a callback function that executes when the answer arrives (can happen in an hour, couple of days, years), your main thread continues in the meantime.