What exactly is the difference between a multi-threaded and a multi-core cpu in principle?

119 views

I’ve gone through various threads on this topic, yet there exists a question of mine left unanswered by the threads

From what I can understand, a single thread can perform multiple tasks “simultaneously”, in that it swaps between multiple tasks, dumping one, picking another, heading back to the first task picking up from where it’d left off and so on

Multiple threads, from what I assume, allows you to possess multiple threads swapping between multiple tasks

For instance, if I had a single core single threaded system, with two tasks to compute, the sole thread in the system would have to periodically switch between the first and the second task
Bumping it up to a single core dual threaded system, I could then delegate each thread to one of these tasks in question, allowing me to simultaneously compute and perform said tasks

Which brings me to multi-core systems. Wouldn’t a dual core single threaded system more or less end up delegating each of the single threaded cores to each of the tasks at hand? From what I hear, the sole differences would be in each core being in possession of **slightly** different system resources (I’d heard some multi-core chips share a portion of the cache)

I’m sure I am getting something wrong here. What really is the difference between, say, a single core dual threaded system and a dual core single threaded system? Both systems can allow for the simultaneous handling of 2 tasks right? If the two tasks happen to be spawned by the same process, I can see why they’d want to remain on the same core ( since they would want to access the same resources, thus necessitating the usage of a single core dual threaded system)

Is there anything else? Or have I gotten it wrong entirely?

In: 5

3 Answers

Anonymous 0 Comments

Ok so…. A lot of this is scrambled terminology.

So let’s go with the basics.

A thread is a bit of software whose execution can be delegated to different CPU cores.

A core is a part of the CPU that can process a thread independently from other cores. They do share some resources with other cores like cache memory, but for the most part execution of one core doesn’t affect execution on another core. So you can run multiple threads in parallel.

A hyperthreaded core cannot process multiple threads at the same time. However it can rapidly switch execution between two threads faster than a core can stop processing of one thread and start on another. It basically keeps the core from going idle as often.

You are viewing 1 out of 3 answers, click here to view all answers.