Síncrono
- A envía mensaje a B y se detiene
- A espera respuesta de B
- A recibe respuesta de B
- A continua con su ejecución
Asíncrono
- A envía mensaje a B y continua su ejecución
- A recibe respuesta de B
Diferencias
básicamente la diferencia es que
sincrono, la invocacion espera el resultado, o sea invocas a un metodo y te quedas en ese punto esperando hasta tanto se devuelva un resultado (o un error)
asincrono, realzias la invocacion pero continuas con la ejecucion, la invocacion continua y por lo general se define un callback (o sea algun metodo o funcion) que recibira la respuesta o el error para toamr alguna accion
pero en este ultimo la ejecucion no se queda esperando la respuesta continua sin bloquear la ejecucion del hilo actual
por ahi en jquery lo has visto con el metodo $.ajax este en concreto es asincrono, por eso estan las opciones de success donde adjuntas una funcion, esa justamente es el callback que mencione
pero este $,ajax tiene un parametro de nombre async:false para que se quede esperando al respuesta de la invocacion a un webmethod