mining pools are a way for miners to pool their resources together and share their hashing power while splitting the reward equally according to the amount of shares they contributed to solving a block.
Pooled mining is a mining approach where multiple generating clients contribute to the generation of a block, and then split the block reward according the contributed processing power. Pooled mining effectively reduces the granularity of the block generation reward, spreading it out more smoothly over time.