Uses I/O asyncs, build workers (each workers = one thread) that act as non blocking threads.
Ex.: a queue of customers and kitchen chef, customers ask to chef, and waiting the food, the second needs to wait the first, its a blocking way
Non blocking in this situation means to have a waitress, that get the orders and delivery as soon as possible the food to the customers