Описание тега synchronous

Синхронный означает, что вызывающая функция ожидает ответа или завершения функции перед возвратом управления основной программе.

Синхронизированный означает каким-то образом "связанный" или "зависимый". Другими словами, две синхронные задачи должны знать друг о друге, и одна должна выполняться каким-либо образом, зависящим от другой. В большинстве случаев это означает, что один не может быть запущен, пока другой не завершится.

Синхронный (один поток):

1 thread ->   |----A-----||-----B-----------||-------C------|

Синхронный (многопоточный):

thread A -> |----A-----|   
                        \  
thread B ------------>   ->|-----B-----------|   
                                              \   
thread C ---------------------------------->   ->|-------C------|