by BehindJava

What is the difference between synchronous, Asynchronous calls and Callbacks

Home » interview » What is the difference between synchronous, Asynchronous calls and Callbacks

In this tutorial, we are going to learn about Synchronous, Asynchronous calls and Callbacks in detail.

Synchronous:

If a request to an API is synchronous, the execution of the code is paused while waiting for the result. To put it another way, your app will essentially stop doing anything until the API responds, which the user may interpret as slowness or delay. However, if your app contains code that can only run normally once the API response has been received, then making a synchronous API call is a good idea.

Asynchronous:

When making an API request, an asynchronous call does not wait for the server to respond. The call is made to the server, and when it returns, a “callback” function in your application is executed.

Callbacks:

In computer programming, a callback is a piece of executable code that is passed as an argument to other code, which is expected to call back (execute) the argument at some convenient time. The invocation may be immediate as in a synchronous callback, or it might happen at a later time as in an asynchronous callback.

Elaboration with an example

Programming can be synchronous (Sync) or asynchronous (Async) in a single or multiple threads. When using synchronous programming, only one task can be executed at a time, whereas when using asynchronous programming, multiple tasks can be executed simultaneously. For instance:

Synchronous: I begin to boil an egg, and once it is done, I begin to broil the bread. I must wait until one task is completed before beginning another.

  • I am beginning to boil an egg, while my mother will toast bread after the egg has simmered. The tasks are executed sequentially and by distinct individuals.(threads).

Asynchronous: I put the egg on to boil and set a timer, then I put the bread on to toast and start a second timer; when they’re both done, I can consume. In asynchronous, I do not have to wait for one task to complete before beginning another.

  • I employ two chefs who will fry the egg and toast the bread. They can do it simultaneously; they do not need to wait for one to complete before beginning the other.