Modern processors can use either hyper-threading or multiple cores. Hyper-threading allows one physical core to behave like two logical cores to improve performance. Multiple cores provide true parallelism by executing multiple processes or threads simultaneously on separate cores.