Multi-core processors combine two or more independent processors into a single integrated circuit to improve performance. They emerged as a solution to physical limitations threatening single-core processor improvements. By having multiple cores work in parallel, multi-core processors can achieve higher speeds than single-core processors and help address overheating issues. However, fully utilizing multiple cores requires changes to programming methods and not all software is optimized for multi-core systems.