This document provides an introduction to multi-core processors. It discusses that a multi-core processor contains two or more processors on a single integrated circuit. This leads to enhanced performance, reduced power consumption, and more efficient simultaneous processing of multiple tasks. However, developing multithreaded applications for multi-core processors can be difficult, time-consuming, and error-prone. Adding more cores also introduces additional overheads and latencies between communicating and non-communicating cores. There are different types of multi-core architectures including symmetric multiprocessing (SMP) and asymmetric multiprocessing (AMP). Effective use of multi-core processors requires considerations around cache coherency, load balancing, interrupt handling, and concurrency management.