A core is a physical part of the CPU that can work on some stuff independently.
A thread is a sequence of stuff that you want the CPU to do.
A large part of CPU design is based around the fact that CPU cores sit around twiddling their thumbs most of the time, waiting for data to arrive from the cache or from RAM. This is how we developed multithreading, where we tell a CPU core to run multiple threads at once by working on the 2nd thread while the 1st thread is idle and waiting.
The problem is, a single core working on 2 threads at the same time is gonna be slower than 2 separate cores each working on 1 thread at a time. This is because the core has to spend a lot of time switching between the 2 threads. Suppose it takes a core 1 second to finish a thread – with 2 cores, you’d finish both threads in 1 second, but with 1 core that has both threads on it it would take something closer to 1.6 seconds.
This is why using a physical core to run a thread is going to be faster than doubling up threads onto the same cores.
Latest Answers