Skip to content
View in the app

A better way to browse. Learn more.

Benchmark Six Sigma Forum

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Message added by Mayank Gupta,

Asynchronous process is one where one can move to another activity before the previous activity finishes. This way, with asynchronous processes one is able to deal with multiple requests simultaneously, thus completing more tasks in a much shorter period of time.

 

Synchronous process is one where activities are performed one at a time and only when one is completed, the following activity can be worked upon. In other words, you need to wait for a task to finish to move to the next one.

 

An application-oriented question on the topic along with responses can be seen below. The best answer was provided by Mohamed Asif on 8th Aug 2022.

 

Applause for all the respondents - Piyush Jain, Rahul Arora, Mohamed Asif, Soji Sam.

Synchronous vs Asynchronous Process

Featured Replies

Q 493. What is the difference between synchronous and asynchronous processes? How does one decide whether the process has to be synchronous or not? 

 

Note for website visitors - Two questions are asked every week on this platform. One on Tuesday and the other on Friday.

Solved by Mohamed Asif Abdul Hameed

Synchronous Execution:

Synchronous pertains to some connection/ dependency like the processes which are interconnected.

When you perform something synchronously, you wait for it to be completed before moving on to next step in the process. In Synchronous operations, tasks are performed one at a time and only when previous step is completed , the following is unblocked/ available.  

For example, in a simple process of preparing a Cake involves steps like measuring flour, adding ingredients, preparing batter, oiling the baking pan, pre-heating the Oven, baking the cake base, preparing the toppings and so and so forth. Here, the next step cannot be executed unless the previous one is completed, otherwise the target results shall not be attained.

Another example could be a movie hall scene, where you are in a line to get a ticket. You cannot buy it until everybody ahead of you gets theirs , and the same applies to the people in the queue behind you.

 

For Synchronous execution means the execution occurs in a single series. 100->200->300->400If those sets in the series are routines, 100 will run, then finish, then only 200 will begin, then be completed, then 300 will start, and so on.

Synchronization denotes to two or more processes with start and end points, rather than their executions. In this example, Process 100’s endpoint is synchronized with Process 200’s start points:

 

SYNCHRONOUS
   |--------100--------|
                     |--------200--------|

                                        |---------300--------|

When a task is performed synchronously, you wait for a task to be over before moving on to another task. One task depends on the end of previous one.

Synchronous (one thread):

 

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

 

Synchronous (multi-threaded):

 

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

Asynchronous Process:

When one conducts a task asynchronously, it can move on to another/next step before it finishes. On the other hand, asynchronous process do not have to have their start and endpoints synchronized:

 

ASYNCHRONOUS
   |--------1001--------|
         |--------2002--------|

                       |-------3003------|

                            |-------4004------|     

Where Process 1001 overlaps Process 2002 and so on, they’re running concurrently.

When an activity/step is executed asynchronously, one can directly move to another task before even the previous step has been concluded. Here, one task does not depend on the other or rather completion of one step does not define kick off to the other/next step.

Simple example for Asynchronous process could be a food court scenario, where you are ordering food with many other people. Other people had also ordered their food items, and independently they don’t have to wait for your food to be prepared and served to you before they can order/ be served.  In the back kitchen, chefs are continuously cooking, serving, and taking new orders. People will get their food served as soon as it is cooked so the beginning and conclusion of steps is not at all dependent.

Another basic example is the difference between old Landline phones, where call merging / conference call like option were not available, makes them uniquely Synchronous whereas in present times, all such functions and more could be managed quite easily, without one function dependency on the other.

To conclude with Synchronous/Asynchronous process, one should focus on the steps or tasks and whether they are independent of each other or not. Say, if you are designing a system, the first step you need to take is to identify the dependencies between processes and define which you can execute singly/individually, which needs to be executed as a consquence/ conclusion of other processes.

 

2111362956_SYNvsASYN.thumb.jpg.96fad9865dc316e05268f382cdb54da7.jpg

 

Take a look at the image over. On the top, you can see that in Synchronous process, the tasks are executed in a successional way; there is not concurrent step, and the next step is always post the completion of the last step. The products are the first to be manufactured, stored, and eventually dispatched.


Now imagine that you did an analysis and concluded that Production line could be connected to an automated process which can store the finished goods as soon as they are produced and there is not waiting time for such action, and vice-versa, but that to execute dispatches you need the information from products first — there’s a reliance. In that case, the first two tasks can be executed asynchronously, but orders will only be executed when products are mostly completed — so, synchronously.

As a result, by applying resemblant automation and asynchronous programming when dealing with independent tasks, you ’re suitable to perform these tasks way quicker than with Synchronous process because they ’re executed at the same time. This way, your system releases precious information/data/product/outcome before and it’s ready to execute other processes that queued.

If the precision and accuracy are critical to the customer, the quality deviations should be restricted at all costs, then Synchronous processes are considered more reliable since they tend to have more checkpoints with detail-oriented transits between stages. Whereas, if automation is preferred with focus on digital tools, targeting huge efficiency and time saving is a key factor, then one may incline towards Asynchronous processes.

Let us understand the difference in both the approaches:-
 
Synchronous Process
 
In a Synchronous Process, we can only move to the next task or step when the previous task or step gets completed. A simplistic version of a synchronous process is as shown below:-
 
Process:    |Task A —————> Task B ——————> Task C|
 
Here Task A will run & finish, then Task B will run & finish & finally Task C will run & finish.
 
We can also have two or more processes synchronized in terms of their start & end points, this is demonstrated below:-
 
Process 1 : |Task A --> Task B|
Process 2:                                |Task A —> Task B|
Process 3 :                                                                                            |Task A —> TaskB|
 
Here the start & end points of processes 1,2,3 are synchronized i.e. completion of task B of process 1 (end of process 1) marks the beginning of task A of process 2 & completion of task B of process 2 (end of process 2) marks the beginning of task A of process 3.
 
Common example of a synchronous process is that you cannot get a movie ticket until the people in front of you in the queue gets the ticket & only then you can enter the auditorium.
 
Asynchronous Process
 
In an Asynchronous process, the execution of another task can be done without the compulsion of completing the previous one. Thus there is no dependency on the completion of the previous task. An asynchronous process is as shown below:-
 
Process:    |——Task A—— 
                            —— Task B—— 
                                  ——Task C——|
 
Here we can see that the execution of task B has initiated even before the completion of task A & same goes with tasks B & C. 
 
Also in a multi process scenario, the start & end points of the processes are not synchronized. This can be shown as below:-
 
Process 1 : |Task A --> Task B|
Process 2 :                 |Task A —> Task B|
Process 3 :                |Task A —> TaskB|
 
Here we can see that the tasks of all three processes 1, 2,3 are being executed concurrently & there is no sync as far as the starting & ending points of these processes is concerned.
 
Common example of an asynchronous process is when you order your food in a restaurant, others can also order their food & they don’t have to wait for your food to be cooked & served before they can order.
 
Thus one has to fully understand the dependencies amongst the tasks to be performed in a process or a series of process in order to decide their execution sequence & thus come to a final decision as to whether the process will be synchronous or asynchronous.
  • Solution

Synchronous (dependent) is sequential and happens one at a time, whereas in Asynchronous (independent) concurrent parallel operations are possible. 


In the below reference, total time taken to complete all 4 tasks in Asynchronous system is just 20 seconds compared to that of 45 seconds in the Synchronous sequential process execution. 

 

1793449689_SEg.jpg.07d581550e2f3df5ade940e08c6ada1d.jpg

 

For instance, zoom meetings happens sequential, which is Synchronous, whereas email communication, online posts can be asynchronous, and be concurrent to keep the target audience engaged for different roles, functions, regions, and programs.

 

5.4.1.png.b344df7c6692220c523a678c26800f6d.png


As referred in the above example, request stacks in synchronous system, and typically referring from a web service request scenario, clients have to wait on the queue until the previous loop is executed and most of the time, what they see is a timeout response. 


Asynchronous system allows multi-tasking, has better resource utilization, with fewer wait times and is more adaptable and the leading contribution is the enhanced throughput that we get out of asynchronous systems, on the contrary synchronous system performs function one at a time and follows rigid sequence.

 

Thus, it is advantageous to use the asynchronous system, especially in an agile, multi-request system environment, however, it is wise to use synchronous in reactive systems. So to conclude, It is better and suggested to evaluate and identify the dependencies in the processes to select the best optimal approach that works for the organization. 

A Synchronous Process is one that waits for another to finish before proceeding. Before proceeding, one activity sends a message to another and waits for a response.
A phone call to another person is a synchronous process; it cannot proceed if the person to whom you wish to speak does not answer the phone.

 

But in an Asynchronous Process, one activity sends a message to another without waiting for a response.
When you leave a message on an answering machine, it becomes an asynchronous process. You leave your message and go about your business, assuming the person will respond once they receive it.

 

We must select synchronous and asynchronous processes based on the requirements -

  • For example, if we need the execution to continue without interruption, we use asynchronous.
  • However, synchronous is used when the process needs to wait, such as when further processing requires the response from the previous

Mohamed Asif has provided the best answer to this question. Well done!

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.