Many people have heard of this, but not many use it in their code. Meanwhile, no serious programs with client-server architecture will do without asynchronous programming. Exchange of data with the database, the interaction of the client and the server - this takes time, which can be occupied by other processes instead of waiting.
When the operation is executed synchronously, the thread is blocked by another thread. And we have to wait for the implementation of this second process to return control to the first one. This causes unnecessary waste of resources, because a stream with a single task can wait for a long time to respond. From a database, for example, or a web service.
And if temporary resources can save multi-threading (the benefit of modern processors allows it), then memory resources will not save it. After all, in fact, multi-threading is also synchronous execution of operations. Just there are few of them.
The real solution is to use asynchronou ...