Quote:
Originally Posted by recoilfx
Actually multi-thread and multi-core are different.
CPUs can have more or elss unlimited threads (till memory/resources run out) - a thread is a small unit of processing block that the OS can schedule.
All threads within the mutli-threaded program must share the same core - unless they are multi-process (utilizing multiple cores).
See: http://en.wikipedia.org/wiki/Multith...rchitecture%29
|
Sorry let me rephrase that - In this case mutlicore and multithreading is used to reach the same end result. (I indicated that this was a simplified explanation.). The wiki article is a bit outdated/strange as was noted at its start and its about the wrong type of "multithreading", completely different as it actually states it there in the first line. You are looking for this :
http://en.wikipedia.org/wiki/Multiprocessing
Or later in the aricle this:
http://en.wikipedia.org/wiki/Simulta...multithreading
You are getting your definitions confused. CPU's can have multiple threads, but thats not what we are talking, because in the case of that wiki we are talking about active and innactive threads. So the cpu performs an action on a threads/process, then jumps and does another action on another thread. It is all done in a serial fashion.
When we refer to cores/threads in the context here we are talking about multiple *Simulatnous* threads. Ie its running 2 threads at once. Classically each CPU can run a single thread (which then jumps from process/thread to thread completing tasks, but it happens so quickly you dont notice that it is running everything on the computer by jumping around). Now if a cpu has multiple threads like a i7 hyperthreaded or a upcoming AMD bulldozer which uses hardwarethreading (its actually routed/processed in the core differently as the threads are manufactured, not simulated) it can run 2 tasks simultaneously. For example it can still have hundreds of proccesses but now you have 2 threads/streams doing the work that 1 did previously (the 2 work both at the same time, so before it might of run: game->steam->internet explorer->OS->game->OS. But with 2 threads it might be: 1:->game->game->game->game. 2:->OS->Internet explored->OS->Steam etc. So it allows a sharing of tasks of the ability to divide tasks up in order to "focus" on a process/thread.