The following scenario may not be the most accurate technical representation, but should give you an idea:
-
Single Core CPU (w/out Hyper-threading)
Imagine you ask someone to do the groceries for you and also asked that person to pick up some pizza at Shakey's. That person would have to do the groceries first, come back to you before he'll do the next task which is to buy the pizza. He isn't smart enough, so he has to do the 2 tasks you asked him one-at-a-time.... making him slower.
-
Single Core CPU (with Hyper-threading)
With hyper-threading, that person is smart enough to do your groceries and also buy the pizza on his way home. He can multi-task better making the 2 jobs done at the same parallel time.... so things are done faster.
-
Dual Core CPU
This time around, instead of just one person to do multiple tasks, you now actually have 2 people that can do it for you. So one person does that groceries, while the other guy gets the pizza. You're not relying or dependent on one person so 2 things are done more efficiently.
-
Dual Core CPU (with Hyper-threading)
The person that did the groceries can also pay the bills for you all in one go , while the other person that's ordering the pizza... well you can also ask him to rent a video on his way home.