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?