Most modern PCs have multithreading.
A simple way to think of threads and the OS's scheduler:
Take a room full of childern(threads), a toy(using the CPU) and a teacher(OS's scheduler).
The teacher somehow choses a child and gives it the toy to play with.
The child will continue playing until he yields the toy back to the teacher
or the teacher takes the toy from the child(preemptive).
Now the toy is available for another child. The teacher will look around and find a child that is ready to play with the toy.
A child might not be ready for the toy because it needed to do something else.
The child is given the toy and processing then loop back to where the teacher gets the toy again either by preemptive or yield.
If the PC has two processors, that is the same as having two toys.