Question: is apex synchronous or asynchronous?
Answer: Synchronous Apex means entire Apex code is executed in one single go. Asynchronous term means not existing or occurring at the same time. Asynchronous apex is executed when resources are available. So any calling method which calls Asynchronous apex wont wait for outcome of Asynchronous call.