Applications Pools are a way to segregate the worker processes that on
IIS between web applications. They provide the ability to group common applications together so that they can share resources.
Each Application Pool has their own set of worker processes assigned to and and does not share processes with other pools.
This way, the worker processes for one application pool can not communicate directly with the worker processes of another pool (thus protecting the applications from one another). For example, putting applications for different clients into individual pools to prevent their application's processes from talking to other client's processes.
Additionally, it allows more worker processes to be allocated to pools to need them. For example, you might assign more worker processes to a customer-facing store website to handle extra load and fewer to a customer facing support site that might not need the resources for static content.