It is a technique to process multiple threads (methods) at
about the same time. It is processing in a particular way in which the execution
start-up of the next process depends upon the execution completion of the
previous process in the scheduled process list.
In this technique, execution of a process or thread remains
independent from other processes or threads which are set for asynchronous behavior.
For example, what if the computer schedules thread A and
thread B to process in order within a single CPU environment. Say thread A has
a very complex logic and takes 30 seconds to finish. In the synchronous
operation, thread B has to wait for 30 seconds to get its turn. But if thread A
has been implemented to run asynchronously then thread B will not require waiting
for 30 seconds. B will get his turn in about 1 second. Yes, the fact behind
this is that A will anyway take 30 seconds or may be more for its execution.