Yes it dose
In simple terms a single processor can only process one machine instruction at a time; it's just not possible to execute two or more instructions simultaneously and therefore not possible to execute 2 programs simultaneously. However, it's not quite as simple as that because a modern processor can have 2 or more cores, in which case it is possible to execute 2 or more instructions simultaneously. However, that's not quite the same thing as executing 2 programs simultaneously as we invariably execute far more threads of execution than we have cores available. Note that a program consists of one or more processes and a process consists of one or more threads of execution. Although it is theoretically possible to execute two threads simultaneously upon two cores, when those cores share the same processor they also share the same L2 cache and that's really only beneficial when both threads share the same process. With 2 independent processors there's a better chance of simultaneous program execution, however it's nigh on impossible to guarantee this unless the system is specifically designed for that purpose. In a multi-processing, multi-threaded environment, task-switching makes it next to impossible for any two independent programs to execute simultaneously because every thread has to yield to waiting threads.
OK. How about an INTELLIGENT answer???? Would be nice, right? First, the difference between hardware and software threads. A hardware thread refers to a physical processor's ability to run a software thread. A software thread is part of your code that you execute in a thread. That is to say, if a processor can handle two hardware threads, that means the processor can simultaneously run up to two software threads at a time. Hardware threads means physical resources. Software threads are created by your program. Regardless of how many software threads your program defines, the processor that provides two hardware threads can only execute two of them concurrently. Now, I am having big problems finding out how many hardware threads a single processor can run. In graduate school, all of the processors we modeled provided two hardware threads. If this is always true, then the Core 2 Duo sounds like it provides 4 hardware threads. Your program can create pretty much any number of software threads, but at any given time there should be no more than 4 on the chip itself. I will see if I can ask someone from the university to get a good answer and will modify my answer if I find anything out. Either way, my answer completely trumps the one that was previously posted here.
tl;dr: They're called threads because thread is an apt metaphor. When you start a thread, you rely on the operating system to allocate processing time so that your thread can execute. While your thread is executing, the processor (or core) is placing all of its attention on your thread.
Multithreading.
The time to execute a 3 clock cycle instruction in a 25MHz processor is 120ns. One clock cycle is 40ns, 1/25Mhz, so three of them are 120ns.
The clock cycle time for the processor in this system is the duration it takes for one complete cycle of the clock signal, determining the speed at which the processor can execute instructions.
A program can have various threads, which are program parts that run simultaneously. If the computer has a single processor, time will be split among the different threads (perhaps a few milliseconds for one thread or sub-process, a few milliseconds for another, etc.), so that the different threads don't really run simultaneously, but it may seem so. If a computer has multiple processors - quite common with modern processors, such as the Intel I3, I5 or I7 - then the computer will truly run multiple threads at once.
word size
In computer programming, you can use multiple threads if you want the computer to do several things at the same time.In computer programming, you can use multiple threads if you want the computer to do several things at the same time.In computer programming, you can use multiple threads if you want the computer to do several things at the same time.In computer programming, you can use multiple threads if you want the computer to do several things at the same time.
Just knowing what a thread does should already make it quite clear what its advantages are. In programming, multithreading means the capability of running multiple threads, or instruction sequences, at the same time. A thread is simply a sequence of instructions, but the language is designed in such as way that other threads can work at the same time.
Superscalar processors have multiple execution units that allow them to execute multiple instructions in parallel, increasing performance. They analyze the instruction flow and identify independent instructions that can be executed concurrently. This increases overall efficiency by reducing idle time and maximizing processor utilization.
In a 'single tasking' environment, only one task is given to the processor at a time & the processor takes millisecond to execute that task. For example, a student is writing a program which takes say, 10 minutes. During this time, the processor is sitting idle. When the program is given to the processor, it finishes its execution in a millisecond. This way, processor is wasting a lot of time which is a dawback in 'single tasking'. In a 'Multi tasking' environment, processor time is divided equally. For example, there are 4 tasks to execute. This is divided into 1/4 millisecond time for each job. This small part is called 'time slice'. Within this time slice, it will try to execute each job. If it can't, intermediate result will be stored in temporary memory. Once executing the fourth task, it will come back to the first task, in a circular manner. This is called 'round robin' method. The main difference is that, in single tasking, the processor time is wasted, but in multitasking, we can utilize the processor time in an optimum way.