Asynchronous is a programming pattern which provides the feature of non-blocking code i.e do not stop or do not depend on another function / process to execute a particular line of code.
Asynchronous is great in terms of performance, resource utilization and system throughput. But there are some drawbacks:
- Very difficult for a legacy programmer to proceed with Async.
- Handling control flow is really painful.
- Callbacks are dirty.
If you are a function-oriented programmer, then it would be little difficult for you to grasp asynchronous programming. However, if you are familiar with
multithreading in Java, then this is similar to that.