Dealing with multitasking, threads, and coroutines
Multitasking, as the name suggests, is the capability of doing several tasks at the same time. In computers, a task is also known as a job or a process and there are different techniques for running tasks at the same time.
The capability to run code at the same time allows your system to scale up and down whenever necessary. If you have to communicate with more network devices, just run more code in parallel; if you need fewer devices, just run less code. That will enable your system to scale up and down.
But running code in parallel will have an impact on the available machine resources, and some of these resources will be limited by how your code is consuming them. For instance, if your code is using the network interface to download files, and running one single line of code is already consuming 50 Mbps of the network interface (which is 50% of the 100 Mbps interface), it is not advised to run multiple lines of code in parallel...