Multi-thread (Multi User) application
Asynchronous programming is notoriously difficult because the order of operations is highly unpredictable.
From a classic computing perspective, concurrent and parallel are clearly synonyms but:
Two process can run in parallel without being concurrent on any data structure.
It takes 4 months to grow a tomato. Can you only grow 3 tomatoes a year ??
Parallel tasking is a concurrency design
The five functions of functional programming hold a key to simplifying asynchronous programming.
Concurrency implementation is done: